<?php
include "ver_sessao.php";
include "conecta.php";
set_time_limit(0);


define(NOME_VALOR,"prod_tx_valor");
define(NOME_QTDE,"prod_tx_qtde");


// print_r($_POST);


function index(){
	
	unset($_SESSION[ordem]);
	unset($_POST[ordem]);
	
	cabecalho('Cancelamento de Pedido',2);
	
	if($_POST[busca_cod]!=''){
		$extra .= " AND enti_nb_id = '$_POST[busca_cod]' ";
	}
	
	if($_POST[busca_nome]!=''){
		$extra .= " AND enti_tx_nome LIKE '%$_POST[busca_nome]%' ";
	}
	
	if($_POST[busca_cnpj]!=''){
		$extra .= " AND enti_tx_cnpj = '$_POST[busca_cnpj]' ";
	}
	
	//CAMPOS
	$cod = cactux::campo('Código','busca_cod','',2);
	$nome = cactux::campo('Nome','busca_nome','',6);
	$cnpj = cactux::campo('CNPJ','busca_cnpj','',2,MASCARA_CNPJ);
	
	//BOTOES
	$buscar = cactux::botao_submit_busca('Buscar',2,'index');
	$status = cactux::msg_status();
	
	$sql = selecionar('entidade','enti_tx_status','ativo',"$extra",1);
	$BUSCA = grid::gerar_paginacao($sql);
	
	cactux::abre_form();
	cactux::abre_fieldset('Filtro de Busca');
	cactux::linha_fieldset($cod,$nome,$cnpj);
	cactux::linha_fieldset($buscar,$status);
	cactux::fecha_fieldset();
	cactux::fecha_form();
	
	// cactux::acao_botao('inserir','abre_cliente');
	cactux::acao_botao('inserir_fisica','abre_cliente_fisico');
	cactux::acao_botao('inserir_juridica','abre_cliente_juridico');
	
	
	$cabecalho[] = array('CÓD','NOME','CNPJ','');
	$cabecalho[] = 'c,e,e';
	$cabecalho[] = '5%,,20%,2%';
	
	while( $a = carrega_array($BUSCA[0]) ){
		$valores[] = array($a[enti_nb_id],$a[enti_tx_nome],$a[enti_tx_cnpj],".icone_modificar($a[0],'abre_pedido')");
	}
	
	grid::gerar($cabecalho,$valores);
	grid::paginar($BUSCA);
	
	rodape();
}



function abre_cliente_juridico(){
	
	chamar_pag('cadastro_cliente.php','acao,retorno','layout_entidade_juridico,pedido.php');
	
	index();
	exit;
}

function abre_cliente_fisico(){
	
	chamar_pag('cadastro_cliente.php','acao,retorno','layout_entidade_fisico,pedido.php');
	
	index();
	exit;
}


function abre_pedido(){
	
	$_POST[cliente] = $_POST[id];
	layout_pedido_cliente();
	exit;
	
}



function seleciona_empresa(){

	cabecalho('Pedido',2);
	
	$a=carregar('ordem',$_POST[id]);
	$itens = selecionar('orpr','orpr_tx_status,orpr_nb_ordem',"ativo,$_POST[id]");
	$itens = num_linhas($itens);
	
	
	$t[]=cactux::texto('Código:',$_POST[id],1);
	$t[]=cactux::texto('Data:',data($a[orde_tx_data],1),2);
	$t[]=cactux::texto('Valor:',mostra_valor($a[orde_tx_valorTotal]),2);
	$t[]=cactux::texto('Itens:',$itens);
	
	
	$botao = cactux::botao('Voltar',2,'voltar');
	$botao2 = cactux::botao_submit('Confirmar',2,'reabre_pedido','id',"$_POST[id]");
	
	cactux::abre_form();
	
	cactux::abre_fieldset('Duplicar pedido');
	cactux::linha_fieldset($t[0],$t[1],$t[2],$t[3]);
	cactux::linha_fieldset($botao,$botao2);
	cactux::fecha_fieldset();


	cactux::fecha_form();
	
	cactux::acao_botao('voltar','layout_pedido_cliente','cliente',$a[orde_nb_entidade]);


	$sql = selecionar("orpr,produto,ordem","orpr_nb_ordem,orpr_tx_status","$a[0],ativo"," AND orpr_tx_status IN ('ativo') ORDER BY orpr_nb_id  DESC ");
	
	$cabecalho[] = array('CÓD','REFERÊNCIA','DESCRIÇÃO','VALOR','QTDE','TOTAL');
	$cabecalho[] = 'e,e,e,e,e,e';
	$cabecalho[] = '5%,10%,,10%,5%,10%,2%,2%';
	
	$i = num_linhas($sql);
	
	while( $a = carrega_array($sql) ){
		
		if( $a[NOME_QTDE] < $a[orpr_tx_qtde] ){
			
			$div = "<div style='color:red'>";
			
		}else
			$div = '';
		
		//DEFINE CX ou UND
		if( $a[orpr_tx_forma] == 'Caixa' )	
			$unidade = " Cx";	
		else	
			$unidade = " Un";
		
		//TOTAL COMPRA
		$total = $a[orpr_tx_qtde]*$a[orpr_tx_valor];
		
		$total_global += $total;
		
		$estoque = "<B>".$a['prod_tx_qtde'];
		
		$valores[] = array($div.$i--,$div.$a[prod_nb_id],$div.$a[prod_tx_nome]." ".$estoque,$div.mostra_valor($a[orpr_tx_valor]),
		$div.$a[orpr_tx_qtde].$unidade,
		$div.mostra_valor($total));
		
	}
	
	$valores[] = array('','','','','<b>Total: </b>',mostra_valor($total_global));
	
	grid::gerar($cabecalho,$valores);
		


}


function reabre_pedido(){

	//------------------ COPIA OS DADOS DA ORDEM ------------------//
	if($_POST[id])
		$or = carregar('ordem',$_POST[id]);
	

	$campos = array(orde_nb_empresa,orde_tx_data,orde_tx_status,orde_nb_entidade,orde_tx_valor,orde_tx_valorTotal,orde_tx_desconto,
					orde_tx_obs,orde_tx_descontop,orde_tx_encerra,orde_tx_statusNota,orde_tx_descontor,orde_tx_forma,orde_nb_user,orde_tx_tipo);
	$valores= array($or[orde_nb_empresa],date('Y-m-d H:i:s'),'ativo',$or[orde_nb_entidade],$or[orde_tx_valor],
					$or[orde_tx_valorTotal],$or[orde_tx_desconto],$or[orde_tx_obs],$or[orde_tx_descontop],$or[orde_tx_encerra],
					$or[orde_tx_statusNota],$or[orde_tx_descontor],$or[orde_tx_forma],$_SESSION[user_nb_id],'Normal');
	inserir('ordem',$campos,$valores);
	$novoId = ultimo_reg('ordem');
	
	
	//--------------------- COPIA OS DADOS DOS PRODUTOS --------------------- //
	$sql = selecionar('orpr','orpr_nb_ordem,orpr_tx_status',"$_POST[id],ativo");
	
	while( $a = carrega_array($sql) ){
		
		$campos2 = array(orpr_nb_ordem,orpr_nb_produto,orpr_tx_valor,orpr_tx_qtde,orpr_tx_origem,
		orpr_tx_forma,orpr_tx_status);
		
		$valores2= array($novoId,$a[orpr_nb_produto],$a[orpr_tx_valor],$a[orpr_tx_qtde],$a[orpr_tx_origem],
		$a[orpr_tx_forma],'ativo');
		
		inserir('orpr',$campos2,$valores2);
		
	}
	//-------------------------------------------------------------------------------------------//
	$_POST[id]=$or[orde_nb_entidade];
	abre_pedido();
	exit;
	
}

function layout_pedido_cliente(){
	
	cabecalho('Pedido',2);
	
	unset( $_SESSION[ordem]);
	
	if($_POST[ordem]){
		$_SESSION[ordem] = $_POST[ordem];
	}
	
	if($_POST[busca_codpedido]!=''){
		$extra .= " AND orde_nb_id = '$_POST[busca_codpedido]' ";
	}
	
	if($_POST[busca_datapedido]!=''){
		$date .= gera_data($_POST[busca_datapedido],1);
		$extra .= " AND orde_tx_data = '$date' ";
	}

	$extra .= " AND ( orde_tx_tipo = 'Normal' OR orde_tx_tipo is null) ";
	
	if($_POST[busca_situacao]!=''){
		
		if($_POST[busca_situacao] == 'Aberto')
			$extra .= " AND orde_tx_status = 'ativo' ";
		else
			$extra .= " AND orde_tx_status = '$_POST[busca_situacao]' ";
		
	} else
		$extra .= " AND orde_tx_status IN ('encerrado') ";
	
	$cliente = carregar('entidade',$_POST[cliente]);


	cactux::abre_form();
	
	//TEXTOS
	$tx_forn = cactux::texto('Entidade:',$cliente[enti_nb_id]." - ".$cliente[enti_tx_nome],3);
	$tx_cnpj = cactux::texto('CNPJ/CPF:',$cliente[enti_tx_cnpj],5);
	
	//CAMPOS
	$cod = cactux::campo('Código','busca_codpedido','',2);
	$data = cactux::campo('Data','busca_datapedido','',2,MASCARA_DATA);
	
	//BOTOES
	$voltar = cactux::botao('Voltar',2,'voltar');
	$buscar = cactux::botao_submit_busca('Buscar',2,'layout_pedido_cliente','cliente',$_POST[cliente]);
	// $inserir = cactux::botao('Novo Pedido',2,'inserir');
	
	$sql = selecionar('ordem,entidade','orde_nb_entidade',"$_POST[cliente]"," AND orde_tx_status IN ('ativo','encerrado','entregue','Cancelado')  $extra ORDER BY orde_tx_data DESC, orde_nb_id DESC");
		
	cactux::abre_fieldset('Filtro de Busca');
	cactux::linha_fieldset($tx_forn,$tx_cnpj);
	cactux::linha_fieldset($cod,$data,$situa);
	cactux::linha_fieldset($voltar,$buscar,$inserir);
	cactux::fecha_fieldset();
	cactux::fecha_form();

	
	cactux::acao_botao('voltar','index');
	// cactux::acao_botao('inserir','layout_pedido','cliente,empresa',"$_POST[cliente],0");
	
	$cabecalho[] = array('CÓD','DATA','OBSERVAÇÃO','VALOR','Nº DE ITENS','SITUAÇÃO','');
	$cabecalho[] = 'c,c,e,c,c,c';
	$cabecalho[] = '5%,15%,,15%,12%,12%,2%,2%,2%,2%';
	$cabecalho[] = '80%';
	
	while( $a = carrega_array($sql) ){
		
		switch($a[orde_tx_status]){
			
			case 'ativo': 
				$status = 'Aberto'; 
			break;
			
			case 'encerrado': 
				$status = 'Encerrado'; 
			break;
			
			case 'entregue': 
				$status = 'Entregue';
			break;
			case 'Cancelado': 
				$status = 'Cancelado'; 
			break;
			
		}
		
		$troca = ".icone_modificar($a[orde_nb_id],'layout_troca','cliente,ordem','$_POST[cliente],$a[orde_nb_id]','','','Trocar Itens','/cactus/imagens/atualizar.png')";
		$reabrir = ".icone_modificar($a[orde_nb_id],'seleciona_empresa','cliente,ordem','$_POST[cliente],$a[orde_nb_id]','','','Copiar Pedido','/cactus/imagens/copiar.png')";
		
		if($a[orde_tx_descontop]>0)
		$imprimir_desconto=".icone_modificar($a[orde_nb_id],'imprimir_desconto','cliente,ordem','$_POST[cliente],$a[orde_nb_id]','','','Imprimir Desconto','/cactus/imagens/imprimir.png')";
		else
		$imprimir_desconto='';
		
		//Nº DE ITENS
		$itens = selecionar('orpr','orpr_tx_status,orpr_nb_ordem',"ativo,$a[orde_nb_id]");
		$itens = num_linhas($itens);
		
		$modificar = ".icone_modificar($a[orde_nb_id],'layout_pedido','cliente,ordem','$_POST[cliente],$a[orde_nb_id]')";
		
		$valores[] = array($a[orde_nb_id],data($a[orde_tx_data],1),$a[orde_tx_obs],"R$ ".mostra_valor($a[orde_tx_valorTotal],1),$itens,$status,$modificar);

		unset($excluir);
	}
	
	grid::gerar($cabecalho,$valores);
	
	rodape();
	
}

function entrega_pedido(){
	
	atualizar('ordem',orde_tx_status,entregue,$_POST[id]);
	layout_pedido_cliente();
	exit;
	
}

function reimprime_pedido(){
	
	chamar_pag('relatorios/pedido.php','acao,id',"imprimir,$_POST[ordem]",' target=_blank');
	layout_pedido_cliente();
	exit;
	
}

function imprimir_desconto(){

	chamar_pag('relatorios/pedido.php','acao,id',"imprimir_desconto,$_POST[ordem]",' target=_blank');
	layout_pedido_cliente();
	exit;


}




function copia_cheque() {


	$sql_cheque = selecionar('chfo,cheque','chfo_tx_status,cheq_tx_status,chfo_nb_fobo',"!inativo,!inativo,$_POST[id]"," LIMIT 1 ");
	$a_cheque = carrega_array($sql_cheque);


	// COPIA O CHEQUE SELECIONADO
	$campos = array(cheq_nb_banco,cheq_tx_agencia,cheq_tx_numero,cheq_tx_conta,cheq_tx_valor,cheq_tx_data,cheq_nb_cliente,
	cheq_tx_titular,cheq_tx_cpf,cheq_tx_status);
	
	$valores = array($a_cheque[cheq_nb_banco],$a_cheque[cheq_tx_agencia],$a_cheque[cheq_tx_numero],$a_cheque[cheq_tx_conta],$a_cheque[cheq_tx_valor],$a_cheque[cheq_tx_data],$a_cheque[cheq_nb_cliente],
	$a_cheque[cheq_tx_titular],$a_cheque[cheq_tx_cpf],$a_cheque[cheq_tx_status]);
	
	inserir('cheque',$campos,$valores,1);
	$id_cheque = ultimo_reg('cheque');


	// CRIA UM FOBO PARA O CHEQUE
	$campos = array(fobo_nb_boleto,fobo_nb_forma,fobo_tx_valor,fobo_tx_data,fobo_tx_status);
	$valores = array($_POST[boleto_destino],2,$a_cheque[cheq_tx_valor],$a_cheque[cheq_tx_data],'ativo');

	inserir("fobo",$campos,$valores,1);
	$id_fobo = ultimo_reg('fobo');


	// CRIA UMA LIGAÇÃO ENTRE O CHEQUE E O FOBO
	$campos = array(chfo_nb_cheque,chfo_nb_fobo,chfo_tx_status);
	$valores = array($id_cheque,$id_fobo,'ativo');
	inserir('chfo',$campos,$valores,1);



	// print_r($_POST);
	// exit;

	layout_financeiro();
	exit;
}




function exclui_pagamento() {

	$a = carregar('fobo,forma',$_POST[id]);
	$forma = strtoupper(substr($a[form_tx_nome],0,6));//PEGA AS PRIMEIRAS 6 LETRAS
	

	remover("fobo");
	
	$campos=array(bole_tx_status,bole_tx_data);
	$valores=array('ativo','');
	
	atualizar('boleto',$campos,$valores,$a[fobo_nb_boleto]);
	
	// SE FOR CHEQUE
	if( $forma == 'CHEQUE' ) {
		atualizar('cheque','cheq_tx_status','inativo','','cheq_nb_cliente',$a[fobo_nb_boleto]);
		// SE FOR CHEQUE, REMOVE O CHEQUE CADASTRADO TAMBEM
	}
	
//	reabre_pagamento();
	layout_financeiro();
	exit;
	
}



function layout_cheque(){

	cabecalho("Pagamento/Recebimento",3);



	// ------------------------------------------------------
	// EXIBE TODOS OS PAGAMENTOS SELECIONADOS
	// ------------------------------------------------------

	if ( $_POST[ordem] > 0 ) {
		$_SESSION[ordem] = $_POST[ordem];
	}


	$sql_movi = selecionar('boleto,movimento','bole_tx_status,movi_tx_tipo,movi_nb_ordem',"!inativo,Saída,$_SESSION[ordem]"," LIMIT 1 ");
	

	$t_ids_mov = num_linhas($sql_movi);

	$a_movimento = carrega_array($sql_movi);

	
	if( $_POST[forma] )
		$a_forma = carregar('forma',$_POST[forma]);
	if( $a_forma[form_nb_banco] > 0 )
		$a_banco = carregar('banco',$a_forma[form_nb_banco]);

	$sql_pago = selecionar("fobo,boleto,forma","fobo_tx_status,bole_nb_id","!inativo,$_POST[parcela_atual]");	
	
	


	cactux::abre_fieldset('INFORMAÇÕES DO PAGAMENTO/RECEBIMENTO');

	for($i=0; $i!=$t_ids_mov; $i++) {

		$a_mov = carregar("boleto,movimento.entidade",$a_movimento[bole_nb_id],'movi_nb_ref','.enti_nb_id');
	
	
		$t1 = cactux::texto('Código:',$a_mov[bole_nb_id],1);
		$t2 = cactux::texto('Nome:',$a_mov[enti_tx_nome],5);
		$t3 = cactux::texto('Vencimento:',data($a_mov[bole_tx_vencimento],1),2);
		$t4 = cactux::texto('Valor:','R$ '.mostra_valor($a_mov[bole_tx_valordoc]),2);
		
	
		cactux::linha_fieldset($t1,$t2,$t3,$t4);
		
		$total_mov += $a_mov[bole_tx_valordoc];
	}

	if( $t_ids_mov > 1 ) {
		$t1 = cactux::texto('','',1);
		$t2 = cactux::texto('','',5);
		$t3 = cactux::texto('','',2);
		$t4 = cactux::texto('Valor Total:','R$ '.mostra_valor($total_mov,1),2);
		
	
		cactux::linha_fieldset($t1,$t2,$t3,$t4);
	} // SE TIVER MAIS DE UM BOLETO, EXIBE UMA LINHA COM O SOMATORIO TOTAL
	
	cactux::fecha_fieldset();


	
	$c4 = cactux::texto('Forma:',$a_forma[form_tx_nome],2);
	$c5 = cactux::texto('* Valor:',$_POST[valor]);
	$c6 = cactux::texto('* Data:',$_POST[data],2);
	
	//CADASTRO DE CHEQUE
	$numero = cactux::campo('Número:','numero','',2);
	$agencia = cactux::campo('Agência:','agencia',$a_forma[form_tx_agencia],2);
	$conta = cactux::campo('Conta:','conta',$a_forma[form_tx_conta],2);
	$banco = cactux::combo_net('Banco:','banco',$a_forma[form_nb_banco],$a_banco[banc_tx_nome],2,array('busca_div.php?c=banco','busca_net.php?c=banco'));
	$valor = cactux::campo('Valor:','valor',$_POST[valor],2,MASCARA_VALOR);
	
	$data = cactux::campo('Data:','data',$_POST[data],2,MASCARA_DATA);
	$titular = cactux::campo('Titular','titular',$a_forma[form_tx_titular],4);
	$cpf = cactux::campo('CPF/CNPJ','cpf',$a_forma[form_tx_cpf],2,MASCARA_CNPJ);
	
	$status = cactux::msg_status();
	
	//VOLTAR

	$grava = cactux::botao_submit("Gravar",2,'cadastra_cheque',"ordem,forma","$_SESSION[ordem],$_POST[forma]");
	$volta = cactux::botao("Voltar",2,'voltar');
	
	
	cactux::abre_form();
	
	cactux::abre_fieldset('FORMAS DE PAGAMENTO');
	cactux::linha_fieldset($c4,$c5,$c6);
	cactux::fecha_fieldset();
	
	cactux::abre_fieldset('CADASTRO DE CHEQUE');
	cactux::linha_fieldset($numero,$agencia,$conta,$banco,$valor);
	cactux::linha_fieldset($data,$titular,$cpf);
	cactux::fecha_fieldset();
	cactux::linha_fieldset($volta,$grava,$status);
	
	cactux::fecha_form();
	
	cactux::acao_botao("voltar",'layout_financeiro',"ordem","$_SESSION[ordem]");
	
	rodape();
	
}




function cadastra_pagamento() {

	if ( $_POST[ordem] > 0 ) {
		$_SESSION[ordem] = $_POST[ordem];
	}

	
	$_POST[valor] = valor($_POST[valor]);


	$sql_bole = selecionar('bole_nb_id|boleto,movimento','bole_tx_status,movi_tx_tipo,movi_nb_ordem',"!inativo,Saída,$_SESSION[ordem]"," LIMIT 1 ");
	$a_bole = carrega_array($sql_bole);

		
	$campos = array(fobo_nb_boleto,fobo_nb_forma,fobo_tx_valor,fobo_tx_data,fobo_tx_status);
	$valores = array($a_bole[bole_nb_id],$_POST[forma],$_POST[valor],gera_data($_POST[data],1),'ativo');

	if ( $_POST[forma] == 1 ) {
		//	SE FOR UM PAGAMENTO EM DINHEIRO, REALIZA A BAIXA DO MESMO
		array_push($campos, fobo_tx_valorBaixa,fobo_tx_dataBaixa,fobo_nb_userBaixa);
		array_push($valores, $_POST[valor],date('Y-m-d'),$_SESSION[user_nb_id]);
	}


	$msg = inserir("fobo",$campos,$valores,1);
	$_POST[fobo] = ultimo_reg('fobo');
	
	
	
	//VERIFICA SE FORMA DE PAGAMENTO SELECIONADA É CHEQUE
	$a_forma = carregar('forma',$_POST[forma]);
	$forma = strtoupper(substr($a_forma[form_tx_nome],0,6));//PEGA AS PRIMEIRAS 6 LETRAS
	
	// SE FOR CHEQUE
	if( $forma == 'CHEQUE' ) {
		
		if( !bd_erro() ) {
			
			
			$campos=array(chfo_nb_cheque,chfo_nb_fobo,chfo_tx_status);
			$valores=array($_POST[cheque],$_POST[fobo],'ativo');
			inserir('chfo',$campos,$valores,1);
			
		}
		
	}
	
	if( $forma == 'TRANSF' ) {
		
		if( !bd_erro() ) {
			
			
			$campos=array(tran_nb_fobo,tran_tx_agencia,tran_tx_conta,tran_nb_banco,tran_tx_status);
			$valores=array($_POST[fobo],$_POST[agencia],$_POST[conta],$_POST[banco],'ativo');
			inserir('transferencia',$campos,$valores,1);
			
		}
		
	}
	
	
	
	//ATUALIZA A TABELA PARCELA COM O HISTORICO SELECIONADO
//	atualizar('parcela',bole_nb_historico,$_POST[hist],$_POST[parcela_atual]);

	
	
	
	layout_financeiro();
	exit;
	
}




function cadastra_cheque(){

	if( !$_POST[banco] || !$_POST[agencia] || !$_POST[numero] || !$_POST[conta] || !$_POST[valor] || !$_POST[data]
	|| !$_POST[titular] || !$_POST[cpf] ) {
		set_status('ERRO: Preencha todos os campos!');
		layout_cheque();
		exit;
	}

	$id = $_POST[parcela_atual];
	// O CAMPO CHEQ_NB_CLIENTE VAI RECEBER O ID DA PARCELA USADA
	
	$campos = array(cheq_nb_banco,cheq_tx_agencia,cheq_tx_numero,cheq_tx_conta,cheq_tx_valor,cheq_tx_data,cheq_nb_cliente,
	cheq_tx_titular,cheq_tx_cpf,cheq_tx_status);
	
	$valores = array($_POST[banco],$_POST[agencia],$_POST[numero],$_POST[conta],valor($_POST[valor]),gera_data($_POST[data],1),$id,
	$_POST[titular],$_POST[cpf],ativo);
	
	inserir('cheque',$campos,$valores,1);
	
	if( !bd_erro() ) {
		$_POST[cheque] = ultimo_reg('cheque');
		
		cadastra_pagamento();
	} else {
		index();
	}
	
	exit;	
	
}




function testa_forma(){
	


	//VERIFICA SE FORMA DE PAGAMENTO SELECIONADA É CHEQUE
	$a_forma = carregar('forma',$_POST[forma]);
	$forma = strtoupper(substr($a_forma[form_tx_nome],0,6));//PEGA AS PRIMEIRAS 6 LETRAS
	
	// if( $forma == 'TRANSF' ){
		
	// 	layout_transferencia();
	// 	exit;
	
	// }
	
	
	// SE FOR CHEQUE
	if( $forma == 'CHEQUE' ) {
		
		set_status('Favor Cadastrar o Cheque');
		layout_cheque();
		exit;
		
	}else{
		
		cadastra_pagamento();
		exit;
		
	}
	
}




// TELA PARA A ENTRADA DOS DADOS DA DEVOLUÇÃO DE VALORES
function layout_financeiro(){
	
	
	cabecalho("Cancelamento de Pedido",2);



	if ( $_POST[ordem] > 0 ) {

		$_SESSION[ordem] = $_POST[ordem];
	}

	
	// ------------------------------------------------------
	// EXIBE TODOS OS PAGAMENTOS SELECIONADOS
	// ------------------------------------------------------


	$sql_pago = selecionar("fobo,boleto,forma.movimento","fobo_tx_status,movi_tx_tipo,movi_nb_ordem","!inativo,Saída,$_SESSION[ordem]"," AND bole_nb_movimento=movi_nb_id ");

	$extra_baixa = " AND ( fobo_tx_dataBaixa IS NULL OR fobo_tx_dataBaixa='' ) ";
	$sql_pago_anterior = selecionar("fobo,boleto,forma.movimento","fobo_tx_status,movi_tx_tipo,movi_nb_ordem","!inativo,Entrada,$_SESSION[ordem]"," $extra_baixa AND bole_nb_movimento=movi_nb_id AND form_tx_nome LIKE '%CHEQUE%' GROUP BY fobo_nb_id "); // LISTA OS CHEQUES RECEBIDOS ANTERIORMENTE

	
	$sql_atual = selecionar("boleto,movimento","bole_tx_status,movi_tx_tipo,movi_nb_ordem","!inativo,Saída,$_SESSION[ordem]");
	$a_atual = carrega_array($sql_atual);


	$or = carregar('ordem,entidade',$_SESSION[ordem]);
	


	
	$tx_forn = cactux::texto('Cliente:',$or[enti_nb_id].' - '.$or[enti_tx_nome],3);

	$tx_cnpj = cactux::texto('CNPJ/CPF:',$or[enti_tx_cnpj],2);
	if( $_SESSION[ordem] )
		$tx_pedido = cactux::texto('Pedido:',$or[orde_nb_id]." - ".data($or[orde_tx_data],1),2);

	$tx_obs = cactux::texto('Observação:',$or[orde_tx_obs],2);

	$tx_valor = cactux::texto('Valor:',mostra_valor($or[orde_tx_valorTotal],1),1);


	cactux::abre_fieldset('Informações da Venda');
	
	cactux::linha_fieldset($tx_forn,$tx_cnpj,$tx_pedido,$tx_obs,$tx_valor);

	cactux::fecha_fieldset();



	// LISTA A PARTE DOS PAGAMENTOS
	$sql_pagamento = selecionar('fobo,forma,boleto.movimento','fobo_tx_status,bole_tx_status,movi_tx_tipo,movi_nb_ordem',"!inativo,!inativo,Entrada,$_SESSION[ordem]"," AND bole_nb_movimento=movi_nb_id GROUP BY fobo_nb_id ");
	$qtde_pagamento = num_linhas($sql_pagamento);

	cactux::abre_fieldset('Pagamentos Recebidos');

	while ( $a_pagamento = carrega_array($sql_pagamento) ) {
		
		$pag_forma = cactux::texto('Forma:',$a_pagamento[form_tx_nome],3);
		$pag_valor = cactux::texto('Valor:',mostra_valor($a_pagamento[fobo_tx_valor],1),2);

		cactux::linha_fieldset($pag_forma,$pag_valor);
	}

	cactux::fecha_fieldset();


	
	cactux::abre_form();	
	//CAMPOS
	$c4 = cactux::combo_bd('Forma:','forma',$array2[form_nb_id],$array2[form_tx_nome],2,"forma");
	$c5 = cactux::campo('* Valor:','valor','',2,MASCARA_VALOR);
	$c6 = cactux::campo('* Data:','data',date("d/m/Y"),2, MASCARA_DATA);
	
	//BOTOES
	if( $a_atual[bole_tx_status] == 'ativo' || $a_atual[bole_tx_status] == 'agrupando' ) {
		
		// EVITA QUE SE ENCERRE UM PAGAMENTO SEM TER EFETUADO NENHUM CADASTRO
		$c7 = cactux::botao_submit("Gravar",2,'testa_forma',"ordem","$_SESSION[ordem]");


		if( num_linhas($sql_pago) > 0 ) {
			$c9 = cactux::botao("Voltar",2,'voltar'," onclick=alerta_fechamento()");
		} else {
			$c9 = cactux::botao("Voltar",2,'voltar');
		}
		//DA UM ALERTA PARA LEMBRAR DE FINALIZAR




		if( num_linhas($sql_pago) != 0 )
			$c8 = cactux::botao("Finalizar",2,'encerrar');
		
		
	} else {// NAO PERMITE MODIFICAR CASO JAH TENHA SIDO PAGO
		
		$c9 = cactux::botao("Voltar",2,'voltar');
		
	}

	if($_POST[volta_arquivo]!='')
		$_POST[volta_pagina]=$_POST[volta_arquivo]; 

	cactux::abre_fieldset('Formas de Devolução');
	cactux::linha_fieldset($c4,$c5,$c6,$hist);
	cactux::fecha_fieldset();
	cactux::linha_fieldset($c9,$c7,$c8);
	
	cactux::fecha_form();
	
	cactux::acao_botao("encerrar",'finaliza_cancelamento_venda','cliente,ordem',"$_POST[cliente],$_SESSION[ordem]");
	cactux::acao_botao("voltar",'layout_pedido','cliente,ordem',"$_POST[cliente],$_SESSION[ordem]");
	

	if( num_linhas($sql_pago) != 0 ) { 
		
		$cabeca[] = array('DATA','FORMA','VALOR','SITUAÇÃO','','');
		$cabeca[] = '';
		$cabeca[] = ',,,15%,3%,3%';
		$cabeca[] = '60%';
		
		while( $array = carrega_array($sql_pago) ) {    
			
			if( $array[form_tx_nome] == 'Cheque' ) {
				
				$array[form_tx_nome] = "<a href=# onclick=ver_cheque('$array[0]')>$array[form_tx_nome]</a>";
				
			}
			
			// NAO DEIXA EXCLUIR SE JAH TIVER SIDO PAGO
			if( $a_atual[bole_tx_status] == 'ativo' || $a_atual[bole_tx_status] == 'agrupando' ) 
				$exclui = ".icone_excluir($array[0],'exclui_pagamento','ordem','$_SESSION[ordem]')";
			else
				$exclui = "";
				
			if( $_SESSION[user_tx_nivel]=='Administrativo' ||  $_SESSION[user_tx_nivel]=='Administrador' || $_SESSION[user_tx_nivel]=='Financeiro Lançamento' || $_SESSION[user_tx_nivel]=='Financeiro Baixa' ){
			
				$exclui = ".icone_excluir($array[0],'exclui_pagamento','ordem','$_SESSION[ordem]')";
			
			}
			
			
			if( (strtoupper(substr($array[form_tx_nome],0,6)) == 'CHEQUE') || (strtoupper(substr($array[form_tx_nome],0,6)) == 'TRANSF')){
			
				//BOTAO PARA VIZUALIZAR INFORMAÇÕES DO CHEQUE 
				if( strtoupper(substr($array[form_tx_nome],0,6)) == 'CHEQUE')
					$modificar = ".icone_modificar($array[fobo_nb_id],'informacao_cheque','id2,ids_agrupados,parcela_atual,volta_pagina','$_POST[id],$_POST[ids_agrupados],$_POST[parcela_atual],$_POST[volta_pagina]')";
				
				//BOTAO PARA VIZUALIZAR INFORMAÇÕES DA TRANFERENCIA
				if( strtoupper(substr($array[form_tx_nome],0,6)) == 'TRANSF')
					$modificar = ".icone_modificar($array[fobo_nb_id],'informacao_transferencia','id2,ids_agrupados,parcela_atual,volta_pagina','$_POST[id],$_POST[ids_agrupados],$_POST[parcela_atual],$_POST[volta_pagina]')";
			
			}else
				$modificar = '';
			
			if ( $array[fobo_nb_forma]==1 )
				$situacao = 'Ativo';
			elseif ( $array[fobo_tx_dataBaixa]=='' )
				$situacao = 'Pendente';
			else
				$situacao = 'Compensado';

			$valores[]=array(data($array[fobo_tx_data],1),$array[form_tx_nome],"R$ ".mostra_valor($array[fobo_tx_valor]),$situacao,$exclui,$modificar);
			
			$total += $array[fobo_tx_valor];
		} 
		
		$valores[] = array('&nbsp;',"VALOR TOTAL:"," R$ ".mostra_valor($total,1),'&nbsp;','&nbsp;');
		
		grid::gerar($cabeca,$valores);
	}

	unset($total);

	// LISTA TODOS OS BOLETOS GERADOS ANTERIORMENTE
	if( num_linhas($sql_pago_anterior) != 0 ) {
		
		

		unset($cabeca,$valores);

		$cabeca[] = array('DATA','FORMA','VALOR','SITUAÇÃO','');
		$cabeca[] = '';
		$cabeca[] = ',,,15%,3%';
		$cabeca[] = '60%';


		while( $array = carrega_array($sql_pago_anterior) ) {
			
			// $a_cheque = selecionar('chfo,cheque','chfo_tx_status,cheq_tx_status,chfo_nb_fobo',"!inativo,!inativo,$array[fobo_nb_id]"," LIMIT 1 ");
			// $a_cheque = carrega_array($a_cheque);

			
			
			if ( $a_atual[bole_nb_id] > 0 )
				$modificar = "<a href=javascript:duplicar_cheque($array[fobo_nb_id],$a_atual[bole_nb_id])><img src='cactus/imagens/visualizar.png' border=0></a>";
			else
				$modificar = "";

			
			if ( $array[fobo_nb_forma]==1 )
				$situacao = 'Ativo';
			elseif ( $array[fobo_tx_dataBaixa]=='' )
				$situacao = 'Pendente';
			else
				$situacao = 'Compensado';

			$valores[] = array(data($array[fobo_tx_data],1),$array[form_tx_nome],"R$ ".mostra_valor($array[fobo_tx_valor]),$situacao,$modificar);
			
			$total += $array[fobo_tx_valor];
		} 
		
		$valores[] = array( '&nbsp;', "VALOR TOTAL:", " R$ ".mostra_valor($total,1), '&nbsp;', '&nbsp;');
		

		echo "<br>";
		cactux::abre_fieldset('Cheques Anteriores');
		echo "<br>";

		grid::gerar($cabeca,$valores);

		cactux::fecha_fieldset();
		cactux::acao_botao('form_cheque','copia_cheque','id,boleto_destino','0,0');


		javascript("

			function duplicar_cheque(id,boleto_destino) {

				if( confirm('Deseja devolver o cheque?') ) {

					window.document.form_cheque.id.value=id;
					window.document.form_cheque.boleto_destino.value=boleto_destino;
					window.document.form_cheque.submit();
				}
			}

		");
	}



	
	rodape();
	
	javascript("
		
		function ver_cheque(id) {
			   url = 'cheque_ver.php?".cactux_cookie::url_sistema()."&id='+id;
		       var wnd = window.open(url,'','toolbar=no,width=600,height=280,scrollbars=yes,top=1,left=1');
		}	
		
		function alerta_fechamento() {
		
			alert('Por Favor, finaliza a operação!');
			document.voltar.submit();
		}
		
	");

}




function finaliza_cancelamento_venda(){


	if ( $_POST[ordem] > 0 ) {

		$_SESSION[ordem] = $_POST[ordem];
	}



	$a_ordem = carregar('ordem,entidade',$_SESSION[ordem]);



	// LISTA TODOS OS PRODUTOS DA VENDA PARA RETORNAR O ESTOQUE DO MESMO
	$sql_itens = selecionar('prod_nb_id,orpr_tx_qtde,prod_tx_qtde|orpr,produto','orpr_tx_status,orpr_nb_ordem',"ativo,$_SESSION[ordem]");
	while( $a_item = carrega_array($sql_itens) ) {

		$novo_estoque = $a_item[prod_tx_qtde]+$a_item[orpr_tx_qtde];

		atualizar('produto',array('prod_tx_qtde'),array($novo_estoque),$a_item[prod_nb_id]);
	}



	$campos = array(orde_tx_status,orde_nb_userCancela,orde_tx_dataCancela);
	$valores = array('Cancelado',$_SESSION[user_nb_id],date('Y-m-d H:i:s'));


	// REALIZA O CANCELAMENTO DA VENDA
	atualizar('ordem',$campos,$valores,$a_ordem[orde_nb_id]);


	set_status('Venda cancelada com sucesso!');


	$_POST[cliente] = $a_ordem[orde_nb_entidade];

	layout_pedido_cliente();
	exit;
}




// FUNÇÃO QUE O FINANCEIRO DO CANCELAMENTO DAS VENDAS
function gerar_financeiro_cancelamento(){


	if ( $_POST[ordem] > 0 ) {

		$_SESSION[ordem] = $_POST[ordem];
	}

	$hoje = date('Y-m-d');


	$a_ordem = carregar('ordem,entidade',$_SESSION[ordem]);



	// VERIFICA SE O FINANCEIRO JÁ FOI GERADO
	$sql_financeiro = selecionar('boleto,movimento','bole_tx_status,movi_tx_status,movi_tx_tipo,movi_nb_ordem',"!inativo,!inativo,Saída,$_SESSION[ordem]"," LIMIT 1 ");


	// SE NÃO TIVER GERADO O FINANCEIRO
	if ( num_linhas($sql_financeiro) == 0 ) {

		// GERA O MOVIMENTO E BOLETO PARA SEREM UTILIZADOS NA PARTE DE DEVOLUÇÃO DOS VALORES
		$campos = array(movi_tx_tipo,movi_nb_centrocusto,movi_nb_planoconta,movi_nb_ref,movi_tx_data,movi_tx_valordoc,movi_tx_status,movi_tx_descricao,movi_nb_ordem);
		$valores = array('Saída',1,1,$a_ordem[orde_nb_entidade],$hoje,$a_ordem[orde_tx_valorTotal],'ativo',"Devolução de Valores do Pedido: $_SESSION[ordem]",$_SESSION[ordem]);
		inserir('movimento',$campos,$valores,1);
		$id_mov = ultimo_reg('movimento');
		
		
		$campos = array(bole_nb_movimento,bole_tx_vencimento,bole_tx_valordoc,bole_tx_parcela,bole_tx_status,bole_tx_obs,bole_tx_dataCadastro,bole_tx_valor,bole_tx_data);
		$valores = array($id_mov,$hoje,$a_ordem[orde_tx_valorTotal],1,'ativo',"Devolução de Valores do Pedido: $_SESSION[ordem]",$hoje,$a_ordem[orde_tx_valorTotal],$hoje);
		inserir('boleto',$campos,$valores,1);
		$id_bol = ultimo_reg('boleto');
	}


	// set_status('Venda Cancelada com sucesso!');

	layout_financeiro();
	exit;
}




// FUNÇÃO UTILIZADA PELO CANCELAMENTO DA NOTA FISCAL
function cancelar_nota() {

	$nNota = carregar('nota','','nota_nb_ordem',$_SESSION[ordem]);
//	atualizar('nota',array(nota_tx_statusNota),array('NFe Cancelada'),$nNota[nota_nb_id]);


	set_status('Nota fiscal cancelada!');

	layout_cancelamento_nota();
	exit;

}


// FUNÇÃO A SER UTILIZADA PELA ATUALIZAÇÃO DA NOTA FISCAL
function atualizar_nota() {


	set_status('Nota fiscal atualizada!');

	layout_cancelamento_nota();
	exit;
}






// TELA PARA REALIZAÇÃO DO CANCELAMENTO DE NOTAS
function layout_cancelamento_nota(){
	
	
	if( $_POST[ordem] ) {
		$_SESSION[ordem] = $_POST[ordem];
	}
	
	cabecalho('Cancelamento de Venda',3);
	
	$or = carregar('ordem,entidade',$_SESSION[ordem]);
	// $clie = carregar('entidade',$_POST[cliente]);
	
	cactux::abre_form();

	//CAMPOS
	$tx_forn = cactux::texto('Cliente:',$or[enti_nb_id]." - ".$or[enti_tx_nome],3);
	$tx_cnpj = cactux::texto('CNPJ/CPF:',$or[enti_tx_cnpj],2);
	if( $_SESSION[ordem] )
		$tx_pedido = cactux::texto('Pedido:',$_SESSION[ordem]." - ".data($or[orde_tx_data],1),2);
	$tx_obs = cactux::texto('Observação:',$or[orde_tx_obs],2);
	$tx_valor = cactux::texto('Valor:',mostra_valor($or[orde_tx_valorTotal],1),1);


	// LISTA A PARTE DE NOTAS FISCAIS
	$nNota = carregar('nota','','nota_nb_ordem',$_SESSION[ordem]);
	if( $nNota[nota_tx_numero] != '' )
		$exibe_numero_nota = zeros($nNota[nota_tx_numero],9);
	else
		$exibe_numero_nota = '';

		
	$statusNota = $nNota[nota_tx_statusNota];
	
	switch( $statusNota ) {
		case '':				$statusNota = "";	break;
		case 'NFe Autorizada':	$statusNota = $statusNota;	break;
		case 'NFe Cancelada':	$statusNota = $statusNota;	break;
		case 'NFe Enviada':		$statusNota = $statusNota;	break;
		default:				$statusNota = "NFe Não Aprovada";	break;
	}

	$nota[] = cactux::texto('Número:',$exibe_numero_nota,2);
	$nota[] = cactux::texto('Situação:',$statusNota,2);
	$nota[] = cactux::texto('Emissão:',data($nNota[nota_tx_emissao],3),2);




	//BOTOES
	$voltar = cactux::botao('Voltar',2,'voltar');



	// AVANÇA PARA A PRÓXIMA TELA APENAS SE A NOTA JÁ ESTIVER CANCELADA
	if ( $statusNota == 'NFe Cancelada' ) {

		$avancar = cactux::botao_submit('Avançar',2,'gerar_financeiro_cancelamento','cliente,ordem',"$_POST[cliente],$_SESSION[ordem]");
		
	} else {
	
		$cancelar = cactux::botao('Cancelar Nota',2,'cancelar'," onclick=envia_cancalemento()");
		$atualizar = cactux::botao('Atualizar Nota',2,'atualizar'," onclick=atualiza_cancalemento()");
	}	
	
	$status = cactux::msg_status(10);

	
	cactux::abre_fieldset('Informações Sobre Venda');
	cactux::linha_fieldset($tx_forn,$tx_cnpj,$tx_pedido,$tx_obs,$tx_valor);
	cactux::linha_fieldset($voltar,$cancelar,$atualizar,$avancar);
	cactux::linha_fieldset($status);
	cactux::fecha_fieldset();

	if($exibe_numero_nota!=''){
		cactux::abre_fieldset('Informações da Nota Fiscal');
		cactux::linha_fieldset($nota[0],$nota[1],$nota[2]);
		cactux::fecha_fieldset();
	}
	
	echo "<div id=div_msg_nfe style='width:100%; text-align:center; float:center; font-size:16px;font-weight:bold; font-size:18px;'></div>";
//	frame_interno(1);
	
	campo_hidden("valor_un",'');
	campo_hidden("valor_cx",'');
	
	cactux::fecha_form();
	
	cactux::acao_botao('voltar','layout_pedido','cliente,ordem',"$_POST[cliente],$_SESSION[ordem]");
	cactux::acao_botao('cancelar','cancelar_nota','cliente,ordem',"$_POST[cliente],$_SESSION[ordem]");
	cactux::acao_botao('atualizar','atualizar_nota','cliente,ordem',"$_POST[cliente],$_SESSION[ordem]");
	cactux::acao_botao('form_atualizar','gerar_financeiro_cancelamento','cliente,ordem',"$_POST[cliente],$_SESSION[ordem]",'','','id=form_atualizar');
	
	//div_msg_nfe
	
	javascript("
	
	function envia_cancalemento() {

		frame_interno('emissao_nfce.php?".cactux_cookie::url_sistema()."&acao_auto=cancelar&id_ordem_auto=$_SESSION[ordem]');
	}
	function atualiza_cancalemento() {

		frame_interno('emissao_nfce.php?".cactux_cookie::url_sistema()."&acao_auto=retornar&id_ordem_auto=$_SESSION[ordem]&tipo_auto=cancelar');
	}
	
	");
	
	
	rodape();
}





function layout_pedido(){	
	global $a_mod;
	global $a_mod_prod;

	
	if($_POST[ordem]){
		
		$_SESSION[ordem] = $_POST[ordem];
		
	}
	
	cabecalho('Cancelamento de Venda',3);
	
	$or = carregar('ordem,entidade',$_SESSION[ordem]);
	$clie = carregar('entidade',$_POST[cliente]);
	
	cactux::abre_form();
	//CAMPOS
	$tx_forn = cactux::texto('Cliente:',$clie[enti_nb_id]." - ".$clie[enti_tx_nome],3);

	$tx_cnpj = cactux::texto('CNPJ/CPF:',$clie[enti_tx_cnpj],2);
	if( $_SESSION[ordem] )
		$tx_pedido = cactux::texto('Pedido:',$_SESSION[ordem]." - ".data($or[orde_tx_data],1),2);

	$tx_obs = cactux::texto('Observação:',$or[orde_tx_obs],2);

	$tx_valor = cactux::texto('Valor:',mostra_valor($or[orde_tx_valorTotal],1),1);




	// LISTA A PARTE DE NOTAS FISCAIS
	$nNota = carregar('nota','','nota_nb_ordem',$_SESSION[ordem]);
	if( $nNota[nota_tx_numero] != '' )
		$exibe_numero_nota = zeros($nNota[nota_tx_numero],9);
	else
		$exibe_numero_nota = '';

		
	$statusNota = $nNota[nota_tx_statusNota];
	
	switch( $statusNota ) {
		case '':				$statusNota = "";	break;
		case 'NFe Autorizada':	$statusNota = $statusNota;	break;
		case 'NFe Cancelada':	$statusNota = $statusNota;	break;
		case 'NFe Enviada':		$statusNota = $statusNota;	break;
		default:				$statusNota = "NFe Não Aprovada";	break;
	}

	$nota[] = cactux::texto('Número:',$exibe_numero_nota,2);
	$nota[] = cactux::texto('Situação:',$statusNota,2);
	$nota[] = cactux::texto('Emissão:',data($nNota[nota_tx_emissao],3),2);



	// LISTA A PARTE DOS PAGAMENTOS
	$sql_pagamento = selecionar('fobo,forma,boleto.movimento','fobo_tx_status,bole_tx_status,movi_tx_tipo,movi_nb_ordem',"!inativo,!inativo,Entrada,$_SESSION[ordem]"," AND bole_nb_movimento=movi_nb_id GROUP BY fobo_nb_id ");
	$qtde_pagamento = num_linhas($sql_pagamento);

	while ( $a_pagamento = carrega_array($sql_pagamento) ) {
		
		$pag_forma[] = cactux::texto('Forma:',$a_pagamento[form_tx_nome],3);
		$pag_valor[] = cactux::texto('Valor:',mostra_valor($a_pagamento[fobo_tx_valor],1),2);
	}




	campo_hidden('descontoReal','0');

	//BOTOES
	$voltar = cactux::botao('Voltar',2,'voltar');

	// SE A NOTA TIVER SIDO EMITIDA, DIRECIONA PARA A TELA DE CANCELAMENTO
	if ( $statusNota!='' && $statusNota!='NFe Não Aprovada' && $statusNota!='NFe Cancelada' ) {
		$botao = cactux::botao_submit('Avançar',2,'layout_cancelamento_nota','cliente,ordem',"$_POST[cliente],$_SESSION[ordem]");

	} else {
		$botao = cactux::botao_submit('Avançar',2,'gerar_financeiro_cancelamento','cliente,ordem',"$_POST[cliente],$_SESSION[ordem]");
	}
	
	
	$status = cactux::msg_status(10);

	
	cactux::abre_fieldset('Informações Sobre Venda');
	cactux::linha_fieldset($tx_forn,$tx_cnpj,$tx_pedido,$tx_obs,$tx_valor);
	cactux::linha_fieldset($voltar,$botao);
	cactux::linha_fieldset($status);
	cactux::fecha_fieldset();

	if($exibe_numero_nota!=''){
		cactux::abre_fieldset('Informações da Nota Fiscal');
		cactux::linha_fieldset($nota[0],$nota[1],$nota[2]);
		cactux::fecha_fieldset();
	}

	cactux::abre_fieldset('Informações de Pagamento');
	for ($i=0; $i<$qtde_pagamento; $i++) { 
		cactux::linha_fieldset($pag_forma[$i],$pag_valor[$i]);
	}
	cactux::fecha_fieldset();

	
	campo_hidden("valor_un",'');
	campo_hidden("valor_cx",'');
	
	cactux::fecha_form();
	
	cactux::acao_botao('voltar','layout_pedido_cliente','cliente',"$_POST[cliente]");
	// cactux::acao_botao('fechar','testa_fechamento','id,cliente',"$_POST[id],$_POST[cliente]");
	
	$sql = selecionar("orpr, produto, ordem","orpr_nb_ordem,orpr_tx_status","$_SESSION[ordem],!inativo"," AND orpr_tx_status IN ('ativo','esperando') ORDER BY orpr_nb_id  DESC ");
	
	$cabecalho[] = array('CÓD','CÓDIGO','DESCRIÇÃO','QTDE.','UND.','UNITÁRIO','DESCONTO','TOTAL');
	$cabecalho[] = 'c,c,e,c,c,c,c';
	$cabecalho[] = '5%,10%,,8%,8%,8%,8%,8%';
	
	$i = num_linhas($sql);
	
	while( $a = carrega_array($sql) ){
		
		if( $a[NOME_QTDE] < $a[orpr_tx_qtde] ){
			
			$div = "<div style='color:red'>";
			
		}else
			$div = '';
		
		//DEFINE CX ou UND
		if( $a[orpr_tx_forma] == 'Caixa' )	
			$unidade = " Cx";	
		else	
			$unidade = " Un";
		
		//TOTAL COMPRA
		$total = ($a[orpr_tx_qtde]*$a[orpr_tx_valor]) - (($a[orpr_tx_qtde]*$a[orpr_tx_valor]) * ($a[orpr_tx_porcentagem] / 100))  ;
		// echo"($a[orpr_tx_qtde]*$a[orpr_tx_valor]) - (($a[orpr_tx_qtde]*$a[orpr_tx_valor]) * ($a[orpr_tx_porcentagem] / 100) "; exit;
		$total_global += $total;
		
		// $estoque = "<B>".$a['prod_tx_qtde'];

		if ( $a[orpr_tx_porcentagem] > 0 ) {
			$desconto = 'R$ '.mostra_valor((($a[orpr_tx_qtde]*$a[orpr_tx_valor]) * ($a[orpr_tx_porcentagem] / 100)),1) . ' ('.mostra_valor($a[orpr_tx_porcentagem]).'%)';
		} else {
			$desconto = 'R$ '.mostra_valor($a[orpr_tx_descontoReal]);
		}
		
		$valores[] = array( $div.$i--,$div.$a[prod_nb_id], $div.$a[prod_tx_nome], $div.mostra_valor($a[orpr_tx_qtde]), $unidade,
							$div.'R$ '.mostra_valor($a[orpr_tx_valor]), $div.$desconto, $div.'R$ '.mostra_valor($total) );
		
	}
	
	$valores[] = array( '', '', '', '', '', '', '<b>TOTAL: </b>', '<b>'.mostra_valor($total_global) );
	
	grid::gerar($cabecalho,$valores);
	
	rodape();
	
	javascript("


	function fecha_pedido() {

		document.cadastro.finalizar.value = 'sim';
		document.cadastro.submit();
	}

	// FECHA O PEDIDO GERANDO O BOLETO
	function fecha_pedido_boleto() {

		document.cadastro.finalizar.value = 'sim';
		document.cadastro.gera_boleto.value = 'sim';
		document.cadastro.submit();
	}


	
	function valor_desconto(campo){
		var valor = campo.replace('.','').replace(',','.');
		if(document.cadastro.valor.value != ''){
			var valortotal = document.cadastro.valor.value;
			valortotal = valortotal.replace('.','').replace(',','.');

			var qtde = document.cadastro.qtde.value;
			qtde = qtde.replace('.','').replace(',','.');
			if(qtde == ''){
				qtde = 1;
			}

			var descontoReal = ((valortotal*qtde)*(valor/100.00));

			document.getElementById('id_descontoReal').innerHTML = descontoReal.formatMoney();
			document.cadastro.descontoReal.value = descontoReal.formatMoney();
		}

	}

	function preco_caixa(valor) {
		
		if( valor == 'Caixa' ) {
			document.cadastro.valor.value=document.cadastro.valor_cx.value;
		} else {
			document.cadastro.valor.value=document.cadastro.valor_un.value;
		}
		
	}
	
	function envia_combo(valor,campo) {
		eval(\"document.cadastro.\"+campo+\".value='\"+valor+\"';\");
	}
	
	
	");
	
}


function layout_troca(){

	
	global $a_mod;
	global $a_mod_prod;
	
	if($_POST[ordem]){
		
		$_SESSION[ordem] = $_POST[ordem];
		
	}
	
	cabecalho('Cancelamento de Venda',2);
	
	$or = carregar('ordem,entidade',$_SESSION[ordem]);
	$clie = carregar('entidade',$_POST[cliente]);
	
	cactux::abre_form();
	//CAMPOS
	$tx_forn = cactux::texto('Cliente:',$clie[enti_nb_id]." - ".$clie[enti_tx_nome],3);
	$tx_cnpj = cactux::texto('CNPJ/CPF:',$clie[enti_tx_cnpj],2);
	if( $_SESSION[ordem] )
		$tx_pedido = cactux::texto('Pedido:',$_SESSION[ordem]." - ".data($or[orde_tx_data],1),2);


	$produto = cactux::combo_net('Produto:','produto',$a_mod_prod[prod_nb_id],$a_mod_prod[prod_tx_nome],5,array('busca_produto.php','busca_produto_net.php'));
	$forma = cactux::combo( 'Forma:','forma',array('Unidade','Caixa'),'',1,"OnChange=preco_caixa(this.value)" );
	$valor = cactux::campo('* Valor:','valor',mostra_valor($a_mod[orpr_tx_valor]),1,MASCARA_VALOR);
	$qtde = cactux::campo('Qtde:','qtde',mostra_valor($a_mod[orpr_tx_qtde]),1,MASCARA_VALOR);
	$desc = cactux::campo('Desconto(%):','desconto',mostra_valor($a_mod[orpr_tx_desconto]),1," onkeyup=mascara_reais(this);valor_desconto(this.value);");
	// $descReal = cactux::campo('Desconto(R$):','descontoReal',mostra_valor($a_mod[orpr_tx_descontoReal]),1,MASCARA_VALOR);
	$descReal = cactux::texto('Desconto(R$):',"<div id='id_descontoReal'>0,00</div>",1);

	campo_hidden('descontoReal','0');

	//BOTOES
	$voltar = cactux::botao('Voltar',2,'botao_voltar');
	if( acao()=='modifica_pedido' )
		$adicionar = cactux::botao_submit('Atualiza Produto',2,'atualiza_produto','id,cliente,voltar',"$_POST[id],$_POST[cliente],trocar");
	else
		$adicionar = cactux::botao_submit('Adicionar Produto',2,'cadastra_produto','cliente,voltar',"$_POST[cliente],trocar");
	$fechar = cactux::botao('Encerrar Troca',2,'fechar');

	$valor_antigo =  cactux::texto('Valor Antigo(R$):',mostra_valor($or[orde_tx_valorTotal]),2);
	$valor_novo =  cactux::texto('Valor Novo(R$):',"<div id='id_novoValor'>0,00</div>",2);
	$diferenca =  cactux::texto('Diferença(R$):',"<div id='id_diferenca' style='font-size:20px;'>0,00</div>",2);
	
	$status = cactux::msg_status();
	
	cactux::abre_fieldset('Informações Sobre Venda');
	cactux::linha_fieldset($tx_forn,$tx_cnpj,$tx_pedido);
	cactux::linha_fieldset($produto,$forma,$valor,$qtde,$desc,$descReal);
	cactux::linha_fieldset($valor_antigo,$valor_novo,$diferenca);
	cactux::linha_fieldset($voltar,$adicionar,$fechar,$status);
	cactux::fecha_fieldset();
	
	campo_hidden("valor_un",'');
	campo_hidden("valor_cx",'');
	
	cactux::fecha_form();
	
	cactux::acao_botao('botao_voltar','layout_pedido_cliente','cliente',"$_POST[cliente]");
	cactux::acao_botao('fechar','encerra_troca','id,cliente',"$_POST[id],$_POST[cliente]");
	
	$sql = selecionar("orpr, produto, ordem","orpr_nb_ordem,orpr_tx_status","$_SESSION[ordem],!inativo"," AND orpr_tx_status IN ('ativo','esperando') ORDER BY orpr_nb_id  DESC ");
	
	$cabecalho[] = array('CÓD','REFERÊNCIA','DESCRIÇÃO','VALOR','QTDE','DESC.(%)','DESC.(R$)','TOTAL','','');
	$cabecalho[] = 'c,c,e,c,c,c';
	$cabecalho[] = '5%,10%,,10%,10%,10%,10%,10%,2%,2%';
	
	$i = num_linhas($sql);
	
	while( $a = carrega_array($sql) ){
		
		if( $a[NOME_QTDE] < $a[orpr_tx_qtde] ){
			
			$div = "<div style='color:red'>";
			
		}else
			$div = '';
		
		//DEFINE CX ou UND
		if( $a[orpr_tx_forma] == 'Caixa' )	
			$unidade = " Cx";	
		else	
			$unidade = " Un";
		
		//TOTAL COMPRA
		$total = ($a[orpr_tx_qtde]*$a[orpr_tx_valor]) - (($a[orpr_tx_qtde]*$a[orpr_tx_valor]) * ($a[orpr_tx_porcentagem] / 100))  ;
		// echo"($a[orpr_tx_qtde]*$a[orpr_tx_valor]) - (($a[orpr_tx_qtde]*$a[orpr_tx_valor]) * ($a[orpr_tx_porcentagem] / 100) "; exit;
		$total_global += $total;
		
		$estoque = "<B>".$a['prod_tx_qtde'];
		
		$valores[] = array($div.$i--,$div.$a[prod_nb_id],$div.$a[prod_tx_nome]." ".$estoque,$div.mostra_valor($a[orpr_tx_valor]),
		$div.mostra_valor($a[orpr_tx_qtde]).$unidade,
		$div.mostra_valor($a[orpr_tx_porcentagem]),
		$div.mostra_valor($a[orpr_tx_descontoReal]),
		$div.mostra_valor($total),
		".icone_modificar($a[orpr_nb_id],'modifica_pedido','cliente,voltar','$_POST[cliente],trocar')",
		".icone_excluir($a[orpr_nb_id],'exclui_orpr','cliente,voltar','$_POST[cliente],trocar')" );
		
	}
	
	$valores[] = array('','','','','','','<b>TOTAL: </b>','<b>'.mostra_valor($total_global),'','');
	
	grid::gerar($cabecalho,$valores);
	
	rodape();
	
	javascript("

	document.getElementById('id_novoValor').innerHTML = '".mostra_valor($total_global)."';
	document.getElementById('id_diferenca').innerHTML = '".mostra_valor($or[orde_tx_valorTotal]-$total_global)."';
	
	function valor_desconto(campo){
		var valor = campo.replace('.','').replace(',','.');
		if(document.cadastro.valor.value != ''){
			var valortotal = document.cadastro.valor.value;
			valortotal = valortotal.replace('.','').replace(',','.');

			var qtde = document.cadastro.qtde.value;
			qtde = qtde.replace('.','').replace(',','.');
			if(qtde == ''){
				qtde = 1;
			}

			var descontoReal = ((valortotal*qtde)*(valor/100.00));

			document.getElementById('id_descontoReal').innerHTML = descontoReal.formatMoney();
			document.cadastro.descontoReal.value = descontoReal.formatMoney();
		}

	}

	function preco_caixa(valor) {
		
		if( valor == 'Caixa' ) {
			document.cadastro.valor.value=document.cadastro.valor_cx.value;
		} else {
			document.cadastro.valor.value=document.cadastro.valor_un.value;
		}
		
	}
	
	function envia_combo(valor,campo) {
		eval(\"document.cadastro.\"+campo+\".value='\"+valor+\"';\");
	}
	
	
	");
	
}


function testa_fechamento(){


	if ( $_POST[ordem] > 0 ) {

		$_SESSION[ordem] = $_POST[ordem];
	}

	
	$sql = selecionar("orpr, produto, ordem","orpr_nb_ordem,orpr_tx_status",
	"$_SESSION[ordem],!inativo"," ORDER BY orpr_nb_id  DESC ");
	
	if( num_linhas($sql) == 0 ){
		
		set_status('Ordem vazia! Por favor insira produtos.');
		layout_pedido();
		exit;
		
	} else {

		atualizar('orpr','orpr_tx_status','ativo','','orpr_nb_ordem,orpr_tx_status',"$_SESSION[ordem],esperando");
		//AGORA O PEDIDO NAO GERA FINANCEIRO POIS VAI PARA A TELA DE GERAÇÃO DE BOLETOS
		$valor = valor_venda($_SESSION[ordem],1);

	
		$campos=array(orde_tx_descontop,orde_tx_desconto,orde_tx_valorTotal,orde_tx_status,orde_nb_user);
		$valores=array($_POST[desconto_p],valor($_POST[desconto_r]),$valor,'ativo',$_SESSION[user_nb_id]);
		atualizar('ordem',$campos,$valores,$_SESSION[ordem]);


		// VERIFICA SE O VENDEDOR VAI GERAR BOLETO
		if ( $_POST[gera_boleto] == 'sim' ) {
			layout_fechamento(); // É A TELA ONDE VAI SER GERADO OS BOLETOS

		} else {
			layout_pedido_cliente();
		}		

		exit;		
	}
	
}

function modifica_pedido(){
	
	global $a_mod;
	global $a_mod_prod;
	
	$a_mod = carregar('orpr',$_POST[id]);
	$a_mod_prod = carregar('produto',$a_mod[orpr_nb_produto]);
	if($_POST[voltar]=='trocar')
		layout_troca();
	else
		layout_pedido();
	exit;
	
	
}

function volta_estoquePedido(){
	// return;
	//$a_ordem = carregar('');
	
	$sql = selecionar('orpr,ordem','orde_nb_id,orpr_tx_status',"$_POST[id],!inativo");
	
	while( $a = carrega_array($sql) ){
		
		$prod = carregar('produto',$a[orpr_nb_produto]);
		
			
		$qtde = ($prod[NOME_QTDE]+$a[orpr_tx_qtde]);
			
		
		
		$campos =array(NOME_QTDE);
		$valores=array($qtde);
		atualizar('produto',$campos,$valores,$prod[prod_nb_id]);
		
	}
	
	layout_pedido_cliente();
	exit;
	
}

function volta_estoque(){
	
	//DA BAIXA NO ESTOQUE
	
	$a = carregar('orpr',$_POST[id]);
	
	$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]);
	
}

function exclui_orpr(){
	
	$a_orpr = carregar('orpr',$_POST[id]);
	
	// -------------------------------------------------------------------------------------------------------------------------------------------------------
	// SE O STATUS DO PRODUTO ESTIVER ATIVO EH PQ O ESTOQUE DELE JAH FOI BAIXADO
	// ENTAO TEM QUE VOLTAR O ESTOQUE ANTIGO QUANDO EXCLUIR ESSE PRODUTO
	// -------------------------------------------------------------------------------------------------------------------------------------------------------
	if($a_orpr[orpr_tx_status]=='ativo') {
		volta_estoque();
	}
	
	
	remover('orpr',$_POST[id]);

	if($_POST[voltar]=='trocar')
		layout_troca();
	else
		layout_pedido();
	exit;
	
}


function fecha_pedido(){

	if ( $_POST[ordem] > 0 ) {

		$_SESSION[ordem] = $_POST[ordem];
	}

	//SOMATORIO DO VALOR DO PEDIDO
	$valor = valor_venda($_SESSION[ordem],1);
	
	$campos=array(orde_tx_descontop,orde_tx_desconto,orde_tx_valor,orde_tx_status,orde_nb_user);
	$valores=array($_POST[desconto_p],valor($_POST[desconto_r]),$valor,aberto,$_SESSION[user_nb_id]);
	atualizar('ordem',$campos,$valores,$_SESSION[ordem]);
	
	chamar_pag('relatorios/pedido.php','acao,id',"imprimir,$_SESSION[ordem]",' target=_blank');	

	set_status('Pedido fechado com sucesso!');
	index();
	exit;
	
}



function gera_financeiro() {



	// VERIFICA SE ENTROU COM A QUANTIDADE DE PARCELAS
	if ( intval($_POST[parcelas]) == 0 ) {

		set_status('Entre com a quantidade de parcelas!');
		
		layout_fechamento();
		exit;
	}



	if ( $_POST[ordem] ) {

		$_SESSION[ordem] = $_POST[ordem];		
	}

	$hoje = date("Y-m-d");


	$a_ordem = carregar('ordem',intval($_SESSION[ordem]));

	
	// OBTEM O VALOR COBRADO A PARTIR DA SOMA DE TODOS OS ITENS DA COMANDA
	$total_venda=0;
	// $sql2 = selecionar('SUM(orpr_tx_qtde*orpr_tx_valor) as total|orpr','orpr_tx_status,orpr_nb_ordem',"ativo,$a_ordem[orde_nb_id]");
	// while( $a2 = carrega_array($sql2) ) {
	// 	$total_venda += $a2[total];
	// }
	$total_venda = valor_venda($_SESSION[ordem]);

	// VERIFICA SE FOI INFORMADO ALGGUM DESCONTO
	if ( valor($_POST[valor_desconto],1) > 0 ) {

		// REALIZA O CÁLCULO DO DESCONTO
		if ( $_POST[tipo_desconto] == 'Reais' ) {
			
			$valor_desconto = valor($_POST[valor_desconto],1);
			$total_venda = $total_venda - $valor_desconto;

		} else {
			
			$valor_desconto = $total_venda*valor($_POST[valor_desconto],1)/100;
			$total_venda = $total_venda - $valor_desconto;
		}
	}

//	echo "string222";exit;
	
	// NO PDV DEVE SER PERMITIDO ADICIONAR APENAS UM PEDIDO
	$campos = array(movi_tx_tipo,movi_nb_centrocusto,movi_nb_planoconta,movi_nb_ref,movi_tx_data,movi_tx_valordoc,movi_tx_status,movi_tx_descricao,movi_nb_ordem);
	$valores = array('Entrada',1,1,$a_ordem[orde_nb_entidade],$hoje,$total_venda,'ativo',"Pedido $a_ordem[orde_nb_id]",$a_ordem[orde_nb_id]);
	inserir('movimento',$campos,$valores,1);
	$id_mov = ultimo_reg('movimento');


	$total_parcelas = intval($_POST[parcelas]);

	// PERCORRE TODAS AS PARCELAS GERANDO OS BOLETOS DE CADA UMA
	for ($i=0; $i<$total_parcelas; $i++) {

		$parcela_valor = valor($_POST[valor][$i],1);
		$parcela_vencimento = gera_data($_POST[vencimento][$i],1);
		$parcela = $i+1;

		$nosso_numero = gera_nossonumero();
	
		$campos = array(bole_nb_movimento,bole_tx_vencimento,bole_tx_valordoc,bole_tx_parcela,bole_tx_nossoNumero,bole_tx_status,bole_tx_obs,bole_tx_dataCadastro);
		$valores = array($id_mov,$parcela_vencimento,$parcela_valor,$parcela,$nosso_numero,'ativo',"Pedido $a_ordem[orde_nb_id], parcela $parcela/$total_parcelas",$hoje);
		inserir('boleto',$campos,$valores,1);
		// $id_bol = ultimo_reg('boleto');
	}

	$sql2 = selecionar('SUM(orpr_tx_qtde*orpr_tx_valor) as total,orpr_nb_produto,orpr_tx_qtde|orpr','orpr_tx_status,orpr_nb_ordem',"ativo,$_SESSION[ordem]");
	while( $a2 = carrega_array($sql2) ) {
		$total_comanda += $a2[total];


		// REALIZA A BAIXA DO ESTOQUE DO PRODUTO
		$a_prod = carregar('produto',$a2[orpr_nb_produto]);

		atualizar('produto',array('prod_tx_qtde'),array($a_prod[prod_tx_qtde]-$a2[orpr_tx_qtde]),$a_prod[prod_nb_id]);
	}

	// ATUALIZA O VALOR DA VENDA E A ENCERRA PARA QUE A COMANDA SEJA UTILIZADA EM OUTRA VENDA
	$campos = array(orde_nb_caixa,orde_tx_valor,orde_tx_valorTotal,orde_tx_status,orde_tx_encerra);
	$valores = array($a_pdv[caix_nb_id],$total_comanda,$total_venda,'encerrado',date("Y-m-d H:i:s"));

	// VERIFICA SE DEU ALGUM DESCONTO
	if ( $valor_desconto > 0 ) {

		// VERIFICA O TIPO DE DESCONTO
		if ( $_POST[tipo_desconto] == 'Reais' ) {
			
			array_push($campos, orde_tx_descontor);
			array_push($valores, $valor_desconto);

		} else {
			
			array_push($campos, orde_tx_descontor, orde_tx_descontop);
			array_push($valores, $valor_desconto, valor($_POST[valor_desconto],1));
		}
	}

	atualizar('ordem',$campos,$valores,$a_ordem[orde_nb_id]);


	set_status('Boletos gerados com sucesso!');


	layout_pedido_cliente();
	exit;
}


function layout_fechamento(){
	
//	print_r($_POST);
	cabecalho('Fechamento de Pedido',2);
	
//	frame_interno(1);
	
	if($_POST[ordem]){
		
		$_SESSION[ordem] = $_POST[ordem];
		
	}
	
	$or = carregar('ordem,entidade',$_SESSION[ordem]);
	// $a_forma = carregar('ordem.forma',$_SESSION[ordem],'orde_tx_forma','.form_nb_id');

		


//	$clie = carregar('entidade',$_POST[cliente]);

	
	//CAMPOS
	if($_SESSION[ordem]!='')
		$tx_pedido = cactux::texto('Pedido:',$_SESSION[ordem],2);	
	$tx_data = cactux::texto('Data:',data($or[orde_tx_data],1),2);
	$tx_forn = cactux::texto('Cliente:',$or[enti_nb_id]." - ".$or[enti_tx_nome],3);
	$tx_cnpj = cactux::texto('CNPJ/CPF:',$or[enti_tx_cnpj],2);

	$tx_valor = cactux::texto('Valor:',"<div id=div_sub_total>".mostra_valor(valor_venda($or[orde_nb_id],1))."</div>",1);

	
	

//	$forma = cactux::combo_bd('!Forma','forma',$or[orde_tx_forma],$a_forma[form_tx_nome],2,'forma',"onChange=forma_paga(this)");
	$desconto1 = cactux::combo('Desconto','tipo_desconto',array('Reais','Porcentagem'),'',1," onChange=calcula_desconto(window.document.cadastro.valor_desconto.value); ");
	$desconto2 = cactux::campo('Valor','valor_desconto',mostra_valor($or[orde_tx_descontor]),1,"onkeyup='mascara_reais(this);calcula_desconto(this.value)' onblur=chama_funcao(window.document.cadastro.parcelas.value);");
	$desconto3 = cactux::texto('Desconto Total','<div id=div_descontot>0,00</div>',2,' readonly');
	$total = cactux::texto('Valor Total',"<div  style='font-size:20px; color:#043c75; ' id=div_total>".mostra_valor(valor_venda($or[orde_nb_id],1)).'</div>',1);
	
	if(acao() == 'modifica_pagamento')
		$c[] = cactux::texto('Parcelas:',1,1);
	else {
		if( !$a_mod[movi_tx_parcela] )
			$a_mod[movi_tx_parcela]=1;
		$c[] = cactux::campo('Parcelas:','parcelas',$a_mod[movi_tx_parcela],1,"onkeyup='mascara_numeros(this);onblur=chama_funcao(this.value)'");
	}

	$observ = cactux::campo('Observação Interna:','obs',$a_mod[bole_tx_obs],3);
	$observ2 = cactux::campo('Observação Boleto:','obs2',$a_mod[bole_tx_obs2],3);
	
	//BOTOES
	set_tabulacao(1000);
	$voltar = cactux::botao('Voltar',2,'voltar');
	set_tabulacao(1001);
	// FORMA VAI SER SEMPRE 1 PARA QUE A FUNCAO DE CALCULO DO VALOR FINAL FUNCIONE
	$fechar = cactux::botao_submit('Encerrar Pedido',2,'gera_financeiro','cliente',"$_POST[cliente]");
	$status = cactux::msg_status();


	$check = "<input type=checkbox value=Sim name='entrega' id=check_".$a[orde_nb_id]." >";
		
	$entrega = cactux::texto('Delivery:',$check,1);
	
	cactux::abre_form();
	cactux::abre_fieldset('Fechamento de Pedido');
	cactux::linha_fieldset($tx_pedido,$tx_data,$tx_forn,$tx_cnpj,$tx_valor);
	cactux::linha_fieldset($desconto1,$desconto2,$desconto3,$total,$c[0]);
	if(acao() == 'modifica_pagamento')
		cactux::linha_fieldset($parcela,$vencimento,$observ,$observ2);
	else
		cactux::linha_fieldset("<td width=100%><div id=id_div>&nbsp;</div></td>");
	
	cactux::linha_fieldset($voltar,$fechar,$status);
	
	cactux::fecha_fieldset();
	cactux::fecha_form();
	
	cactux::acao_botao('voltar','layout_pedido','cliente',$_POST[cliente]);
	
	$sql = selecionar("orpr, produto, ordem","orpr_nb_ordem","$_SESSION[ordem]",
	"AND orpr_tx_status IN ('ativo','esperando') ORDER BY orpr_nb_id  DESC ");
	
	$cabecalho[] = array('CÓD','REFERÊNCIA','DESCRIÇÃO','VALOR','QTDE','DESC.(%)','DESC.(R$)','TOTAL');
	$cabecalho[] = 'c,c,e,c,c,c';
	$cabecalho[] = '5%,10%,,10%,10%,10%,10%,10%,2%,2%';
	
	$i = num_linhas($sql);
	
	while( $a = carrega_array($sql) ){
		
		//DEFINE CX ou UND
		if( $a[orpr_tx_forma] == 'Caixa' )
			$unidade = " Cx";
		else	
			$unidade = " Un";
		
		//TOTAL COMPRA
		$total =  ($a[orpr_tx_qtde]*$a[orpr_tx_valor]) - (($a[orpr_tx_qtde]*$a[orpr_tx_valor]) * ($a[orpr_tx_porcentagem] / 100))  ;
		
		$valores[] = array($i--,$a[prod_nb_id],$a[prod_tx_nome],mostra_valor($a[orpr_tx_valor]),$a[orpr_tx_qtde].$unidade,
				mostra_valor($a[orpr_tx_porcentagem]),mostra_valor($a[orpr_tx_descontoReal]),
				mostra_valor($total) );
		$total_global+=$total;
		
	}
	
	$valores[] = array('','','','','','','<b>TOTAL:</b>',mostra_valor($total_global));
	
	grid::gerar($cabecalho,$valores);
	
	
	javascript("
		
		function chama_funcao(parcelas){
			
			parc(parcelas);
			calcula_parcelas(parcelas);
			calcula_vencimentos(parcelas);
			
		}


		function calcula_desconto(valor_desconto){

			var tipo_desconto = window.document.cadastro.tipo_desconto.value;
			var valor_total = window.document.getElementById('div_sub_total').innerHTML;


			valor_desconto = gera_valor(valor_desconto);			
			valor_total = gera_valor(valor_total);


			if ( tipo_desconto == 'Reais' ) {
			
				valor_total = valor_total - valor_desconto;

			} else {
				
				valor_desconto = valor_total*valor_desconto/100;
				valor_total = valor_total - valor_desconto;
			}


			window.document.getElementById('div_descontot').innerHTML = valor_desconto.formatMoney(); // ATUALIZA O VALOR DO DESCONTO
			window.document.getElementById('div_total').innerHTML = valor_total.formatMoney(); // ATUALIZA O VALOR TOTAL

			// alert(valor_total);
		}

		
		function forma_paga(forma) {
			
			var reais = document.cadastro.desconto_r.value;
			var desc_p = document.cadastro.valor_desconto_t_original.value;
			var porcentagem = document.cadastro.desconto_p.value;
			var total = document.cadastro.valor_total.value;
			
			// $('frame_interno').src='pedido.php?acao=calcula_desconto&total='+total+'&reais='+reais+'&desc_p='+desc_p+'&forma='+forma.value;
			$('frame_interno').src='pedido.php?".cactux_cookie::url_sistema()."&acao=calcula_desconto&total='+total+'&reais='+reais+'&desc_p='+desc_p+'&forma='+forma+'&porcentagem='+porcentagem;
			
		}
		
		function parc(parcelas) {
			
			var c='';
			var tab=7;
			$('id_div').innerHTML='';
			
			for(i=0; i!=parcelas; i++) {
				
				/*if( i> 0 && i%3 == 0 ) {
					c = c + \"<td>&nbsp;</td></tr><tr>\";
				}*/
				
				c = c + \"<td style='width:1%' align=left>\"+(i+1)+\"º Valor : <BR> <input  tabindex=\"+(tab++)+\"   id=vparc_\"+i+\" ".MASCARA_VALOR."  type=text name=valor[] style='border:1px solid #c8d7e3;'> </td> <td style='width:1%'  align=left>\"+(i+1)+\"º Vencimento: <BR> <input tabindex=\"+(tab++)+\"  id=venc_\"+i+\" ".MASCARA_DATA." type=text name=vencimento[] style='border:1px solid #c8d7e3;'> </td> <td style='width:10%' align=left>&nbsp;</td>				</tr><tr>\";
				//<td style='width:10%' align=left>Observação Interna: <BR> <input tabindex=\"+(tab++)+\" type=text name=obs[] size=50 style='border:1px solid #c8d7e3;'> </td>				
			}
			
			c = '<table border=0 width=100%><tr>' + c + '<td>&nbsp;</td></tr></table>';
			
			$('id_div').innerHTML=c;
			
		}
		
		function calcula_parcelas(parcelas){
			
			var total = document.getElementById('div_total').innerHTML;
			total = gera_valor(total);
			resultado = total/parcelas;
			resultado = parseInt(resultado);
			resto = total%parcelas;
			
			
			for(i=0; i!=parcelas-1; i++){
				
				document.getElementById('vparc_'+i).value=resultado.formatMoney();
				
			}
			
			var ultima = resto + resultado;
			ultima = ultima.formatMoney();
			
			document.getElementById('vparc_'+i++).value=ultima;
			
		}
		
		function calcula_vencimentos(parcelas){
			
			$('frame_interno').src='pedido.php?".cactux_cookie::url_sistema()."&acao=calcula_vencimentos&parcelas='+parcelas;
			
		}
		
		parc(1);
			chama_funcao(document.cadastro.parcelas.value);
		
	");
	
}

function calcula_vencimentos(){
	
	$parcelas = $_GET[parcelas];
	
	$hj = gera_data('hoje');
	
	$data = $hj;
	
	// javascript("
		
	// 	window.parent.document.getElementById('venc_'+0).value='".data($hj)."';
		
	// ");
	
	for($i=0; $i!=$parcelas; $i++){
		
		$data += 2592000 ;// HJ + 30dias
		$n = $i;
		
		javascript("
			
			window.parent.document.getElementById('venc_'+$n).value='".data($data)."';
			
		");
		
	}
	
}

function encerrar_pedido(){

	// print_r($_POST);
	// exit;


	if ( $_POST[ordem] > 0 ) {

		$_SESSION[ordem] = $_POST[ordem];
	}

	
	if( !$_POST[forma] ) {
		set_status('ERRO: Entre com a forma de pagamento!');
		layout_fechamento();
		exit;
	}

	$hj = gera_data('hoje',1);
	$valor = $_POST[valor];
	$venc = $_POST[vencimento];
	$obs1 = $_POST[obs];
	$obs2 = $_POST[obs2];
	$_POST[descricao]='Receitas';
	
	//SOMA AS PARCELAS
	for($j=0; $j!=$_POST[parcelas]; $j++) {
		
		$valordoc += valor($valor[$j]);
		
	}
	
	// REMOVE TODOS OS BOLETOS E MOVIMENTOS DESSA ORDEM QUE POSSAM JAH EXISTIR
	$sql = selecionar('boleto,movimento','movi_nb_ordem',"$_SESSION[ordem]");
	while( $a = carrega_array($sql) ) {
		remover('boleto',$a[bole_nb_id]);
		remover('movimento',$a[movi_nb_id]);
	}


	$a_cliente = carregar('entidade',$_POST[cliente]);
	
	$campos = array(movi_tx_tipo,movi_nb_ref,movi_nb_centrocusto,movi_nb_planoconta,movi_tx_valordoc,movi_tx_status,movi_tx_data,movi_tx_parcelas,movi_nb_ordem);
	$valores = array(Entrada,$a_cliente[enti_nb_id],1,2,$valordoc,ativo,$hj,$_POST[parcelas],$_SESSION[ordem]);
	inserir('movimento',$campos,$valores,1);
	
	$_POST[movimento] = ultimo_reg('movimento');
	
	//GRAVA UM BOLETO PARA CADA PARCELA
	for($i=0; $i!=$_POST[parcelas]; $i++){
		
		$obs = "Venda: $_SESSION[ordem] Valor: ".mostra_valor($valordoc)." Parcela: ".($i+1)."/".$_POST[parcelas];
		
		$campos = array(bole_nb_movimento,bole_tx_valordoc,bole_tx_vencimento,bole_tx_parcela,bole_tx_status,bole_tx_obs);
		$valores = array($_POST[movimento],valor($valor[$i]),gera_data($venc[$i],1),($i+1),ativo,$obs);
		inserir('boleto',$campos,$valores,1);
		
		if( $i == 0 )
			$id_boleto = ultimo_reg('boleto');
		
	}
	
	
	// SOMATORIO DO VALOR DO PEDIDO
	$valor = valor_venda($_SESSION[ordem],1);

	echo "<hr>".$valor."-".$valordoc;

	$campos=array(orde_nb_entidade,orde_tx_descontop,orde_tx_descontor,orde_tx_forma,orde_tx_desconto,orde_tx_valor,orde_tx_encerra,orde_tx_status,orde_tx_valorTotal,orde_nb_user,orde_tx_entrega);
	$valores=array($_POST[cliente],$_POST[desconto_p],$_POST[desconto_r],$_POST[forma],valor($_POST[desconto_r]),$valor,date("Y-m-d H:i:s"),encerrado,$valordoc,$_SESSION[user_nb_id],$_POST[entrega]);
	atualizar('ordem',$campos,$valores,$_SESSION[ordem]);

	unset($valordoc);
	
	baixa_estoque();
	
//	chamar_pag('relatorios/pedido.php','acao,id',"imprimir,$_SESSION[ordem]",' target=_blank');	
//	javascript("
//			window.open('relatorios/pedido.php?acao=imprimir&id=$_SESSION[ordem]','','toolbar=no,width='+window.screen.availWidth+',height=450,scrollbars=yes');
//	");

//	chamar_pag('financeiro/pagamento.php','acao,ids_agrupados,volta_pagina,ordem',"abre_pagamento,$id_boleto,pedido_finaliza,$_SESSION[ordem]");	

		echo "<body>";
		cactux::acao_botao('form_volta','abre_pagamento','parcela_atual,ids_agrupados,volta_pagina,ordem,'.grid::campos_busca(),"$id_boleto,$id_boleto,pedido_finaliza,$_SESSION[ordem],".grid::valores_busca(),'financeiro/pagamento.php');
		echo "<script>	window.document.onload=window.document.forms[0].submit();</script>";
		echo "</body>";	



	$_POST[id] = $_POST[cliente];



	set_status('Pedido fechado com sucesso!');
	layout_pedido_cliente();
	exit;
	
}


function volta_encerramento_pago() {


	if ( $_POST[ordem] > 0 ) {

		$_SESSION[ordem] = $_POST[ordem];
	}
	
	
	javascript("
			window.open('relatorios/pedido.php?".cactux_cookie::url_sistema()."&acao=imprimir&id=$_SESSION[ordem]','','toolbar=no,width='+window.screen.availWidth+',height=450,scrollbars=yes');
	");

	set_status("Venda $_POST[ordem] Efetuada com sucesso");
//	$a = carregar('ordem',$_POST[ordem]);
//	$_POST[cliente] = $a[orde_nb_entidade];
//	layout_pedido_cliente();
	index();
	exit;
//	print_r($_POST);
//	echo "<hr>$_SESSION[ordem]<hr>";
//	print_r($_SESSION);
	
	
	
}

function encerra_troca(){
	baixa_estoque();
	index();
	exit;
}

function baixa_estoque(){



	if ( $_POST[ordem] > 0 ) {

		$_SESSION[ordem] = $_POST[ordem];
	}

	
	//DA BAIXA NO ESTOQUE
	$s = selecionar('orpr','orpr_nb_ordem,orpr_tx_status',"$_SESSION[ordem],esperando",'');
	while( $a = fetch_array($s) ) {
		
		$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]);
		
	}

	//MUDA O STATUS DOS PRODUTOS DA VENDA
	atualizar('orpr','orpr_tx_status','ativo','','orpr_nb_ordem,orpr_tx_status',"$_SESSION[ordem],esperando");
	

}

function calcula_desconto(){

if( $_GET[forma] != '') {
		
		$a = carregar('forma',$_GET[forma]);
		
		$valor = $_GET[total]-($_GET[total]*($_GET[form_tx_desconto]/100));
		// SE TIVER DESCONTO EM %
		
		if($_GET[reais]!='' || $_GET[reais]!='0' || $_GET[porcentagem]!='0'  || $_GET[porcentagem]!=''){
			
			$reais = valor($_GET[reais]);
			$porcentagem = valor($_GET[porcentagem]);
			$valor = $_GET[total]-($_GET[total]*($porcentagem/100));
			
			$valor -= $reais;
			
			$desconto_final = (($valor*100)/$_GET[total])-100;
			$desconto_final = mostra_valor(abs(round($desconto_final,2)))."%";
			
			echo "Entrou!";
		}
		
		$desc = mostra_valor($_GET[total]-$valor);
		$desc2 = round($_GET[total]-$valor,2);
		$valor = mostra_valor($valor);
		
		
		echo "<hr>VALOR: $valor<br>desc: $desc<br>Desc2: $desc2<br>";
		
	} else {
		
		$valor = mostra_valor($_GET[total]);
		$desc = '';
		$desc2 = '';
		$a[form_tx_desconto]='';
		
	}
	
	$desc_t = $desconto_final." (R$ ".$desc.")";
	
	javascript("
		
		// window.parent.$('div_total').innerHTML='$valor';
		// window.parent.$('div_descontot').innerHTML='$desc_t';
		// window.parent.document.cadastro.desconto_p.value='$a[form_tx_desconto]';
		// window.parent.document.cadastro.valor_desconto_t_original.value='$desc2';
		// window.parent.document.cadastro.desconto_t.value='$valor';

		window.parent.document.cadastro.valor_total_final.value='$valor';
		window.parent.$('div_total').innerHTML='$valor';
		window.parent.$('div_descontot').innerHTML='$desc_t';
		window.parent.document.cadastro.desconto_p.value='$_GET[porcentagem]';
		window.parent.document.cadastro.valor_desconto_t_original.value='$desc2';
		window.parent.document.cadastro.desconto_t.value='$valor';
		
	");
	
}



// FUNÇÃO UTILIZADA PARA MUDAR O CLIENTE DA VENDA
function atualizar_cliente($id_ordem,$nova_entidade) {

	if ( $id_ordem==0 || $nova_entidade==0 ) {

		set_status('ERRO: Ordem ou cliente não informado!');
		
		index();
		exit;
	}


	atualizar('ordem',array(orde_nb_entidade),array($nova_entidade),$id_ordem);
}



function cadastra_produto(){
	// print_r($_POST);
	// SE FOR O INICIO DA VENDA CHAMA A FUNCAO ABRE_PEDIDO()
	if( !$_SESSION[ordem] )
		abrir_pedido();
	
	if( intval($_POST[qtde]) == 0 )
		$_POST[qtde] = 1;
	
	$_POST[qtde] = valor($_POST[qtde]);


	// SE O IS DO PRODUTO ESTIVER VASIO E NÃO ESTIVER FINALIZANDO, EXIBE UMA MENSAGEM DE ERRO
	if ( intval($_POST[produto])==0 && $_POST[finalizar]!='sim' ) {
		
		set_status('ERRO: entre com um produto!');

		if($_POST[voltar]=='trocar')
			layout_troca();
		else
			layout_pedido();
		exit;
	}



	$p = carregar('produto',$_POST[produto]);


	// VERIFICA SE O DESCONTO DADO ECEDE O DESCONTO MÁXIMO
	if ( valor($_POST[desconto],1)>$p[prod_tx_descontoMaximo] && $p[prod_tx_descontoMaximo]>0 ) {

		$mensagens .= 'ATENÇÃO: Desconto máximo de '.mostra_valor($p[prod_tx_descontoMaximo],1).'% excedido! <br>';
		

		// SE NÃO FOR GERENTE OU ADMINISTRADOR, NÃO DEIXA PASSAR
		if( $_SESSION[user_tx_nivel] != 'Administrador' && $_SESSION[user_tx_nivel] != 'Gerente' ) {

			set_status('ATENÇÃO: Desconto máximo de '.mostra_valor($p[prod_tx_descontoMaximo],1).'% excedido!');

			if($_POST[voltar]=='trocar')
				layout_troca();
			else
				layout_pedido();
			exit;
		}
	}
	

	// SE ENTROU COM UM PRODUTO, REALIZA O LANÇAMENTO DO MESMO
	if ( intval($_POST[produto]) > 0 ) {

		$campos=array(orpr_nb_ordem,orpr_nb_produto,orpr_tx_valor,orpr_tx_qtde,orpr_tx_status,orpr_tx_forma,orpr_tx_porcentagem,orpr_tx_desconto,orpr_tx_descontoReal);
		$valores=array($_SESSION[ordem],$_POST[produto],valor($_POST[valor]),$_POST[qtde],esperando,$_POST[forma],valor($_POST[desconto]),valor($_POST[descontoReal]),valor($_POST[descontoReal]));
		inserir('orpr',$campos,$valores,1);


		if( $p[NOME_QTDE] < $_POST[qtde] ) 
			$mensagens .= "ATENÇÃO: Quantidade superior ao estoque de: ".mostra_valor($p[NOME_QTDE],1)." <br>";
	}


	if ( intval($_POST[cliente_novo]) > 0 ) {
		atualizar_cliente($_SESSION[ordem],intval($_POST[cliente_novo]));
		$_POST[cliente] = $_POST[cliente_novo];
	}


	if ( trim($mensagens) != '' ) {
		
		set_status($mensagens);
	}


	// VERIFICA SE ESTA FINALIZANDO O PEDIDO
	if ( $_POST[finalizar] == 'sim' ) {

		testa_fechamento();
		exit;
	}


	
	if($_POST[voltar]=='trocar')
		layout_troca();
	else
		layout_pedido();
	exit;
	
}

function atualiza_produto(){
	
	$p = carregar('produto',$_POST[produto]);

	$a_orpr = carregar('orpr',$_POST[id]);

	$_POST[qtde] = valor($_POST[qtde]);


	// SE O IS DO PRODUTO ESTIVER VASIO E NÃO ESTIVER FINALIZANDO, EXIBE UMA MENSAGEM DE ERRO
	if ( intval($_POST[produto])==0 && $_POST[finalizar]!='sim' ) {
		
		set_status('ERRO: entre com um produto!');

		if($_POST[voltar]=='trocar')
			layout_troca();
		else
			layout_pedido();
		exit;
	}

	// -------------------------------------------------------------------------------------------------------------------------------------------------------
	// SE AS QUANTIDADES FOREM DIFERENTES PRECISA ATUALIZAR O ESTOQUE TAMBEM
	// ENTAO TEM QUE VOLTAR O ESTOQUE ANTIGO QUANDO ATUALIZAR ESSE PRODUTO
	// -------------------------------------------------------------------------------------------------------------------------------------------------------

	if( $a_orpr[orpr_tx_qtde] != $_POST[qtde] ) {
		volta_estoque();
	}



	// VERIFICA SE O DESCONTO DADO ECEDE O DESCONTO MÁXIMO
	if ( valor($_POST[desconto],1)>$p[prod_tx_descontoMaximo] && $p[prod_tx_descontoMaximo]>0 ) {

		$mensagens .= 'ATENÇÃO: Desconto máximo de '.mostra_valor($p[prod_tx_descontoMaximo],1).'% excedido! <br>';
		

		// SE NÃO FOR GERENTE OU ADMINISTRADOR, NÃO DEIXA PASSAR
		if( $_SESSION[user_tx_nivel] != 'Administrador' && $_SESSION[user_tx_nivel] != 'Gerente' ) {

			set_status('ATENÇÃO: Desconto máximo de '.mostra_valor($p[prod_tx_descontoMaximo],1).'% excedido!');

			if($_POST[voltar]=='trocar')
				layout_troca();
			else
				layout_pedido();
			exit;
		}
	}
	

	// VERIFICA SE ESTA LANÇANDO UM PRODUTO
	if ( intval($_POST[produto]) > 0 ) {
	
		$campos=array(orpr_nb_ordem,orpr_nb_produto,orpr_tx_valor,orpr_tx_qtde,orpr_tx_status,orpr_tx_forma,orpr_tx_porcentagem,orpr_tx_desconto,orpr_tx_descontoReal);
		$valores=array($_SESSION[ordem],$_POST[produto],valor($_POST[valor]),$_POST[qtde],'esperando',$_POST[forma],valor($_POST[desconto]),valor($_POST[descontoReal]),valor($_POST[descontoReal]));
		atualizar('orpr',$campos,$valores,$_POST[id]);

		if( $p[NOME_QTDE] < $_POST[qtde] )
			$mensagens .= "ATENÇÃO: Quantidade superior ao estoque de: ".mostra_valor($p[NOME_QTDE],1)."<br>";
	}


	if ( intval($_POST[cliente_novo]) > 0 ) {
		atualizar_cliente($_SESSION[ordem],intval($_POST[cliente_novo]));
		$_POST[cliente] = $_POST[cliente_novo];
	}


	if ( trim($mensagens) != '' ) {
		
		set_status($mensagens);
	}


	// VERIFICA SE ESTA FINALIZANDO O PEDIDO
	if ( $_POST[finalizar] == 'sim' ) {

		testa_fechamento();
		exit;
	}

	
	if($_POST[voltar]=='trocar')
		layout_troca();
	else
		layout_pedido();
	exit;

	
}


function abrir_pedido(){
	
	$LOJA = 1;

	// OBTEM A ÚLTIMA COMANDA CADASTRADA
	$sql_pedido = selecionar('orde_tx_comanda|ordem','orde_tx_status','!inativo'," ORDER BY orde_tx_comanda DESC LIMIT 1 ");
	$a_pedido = carrega_array($sql_pedido);

	$comanda = $a_pedido[orde_tx_comanda]+1;
	
	$campos=array(orde_nb_empresa,orde_tx_comanda,orde_tx_data,orde_tx_status,orde_nb_entidade,orde_nb_user,orde_tx_tipo);
	$valores=array($LOJA,$comanda,date('Y-m-d H:i:s'),ativo,$_POST[cliente],$_SESSION[user_nb_id],'Normal');
	inserir('ordem',$campos,$valores,1);
	
	$_SESSION[ordem] = ultimo_id();
	
	set_status('Pedido Iniciado com Sucesso!');
	
}

CONTROLE();
?>