<?php
ob_start();
session_start();
require_once "connect.php";
require_once 'inc/usuario.php';

$usuario_list = getLoggedUser();
$id_usuario = $usuario_list['id'];

$id_tipo_titulo = 1;


//Recebendo os valores do POST e descriptografando
$id_planofin 		=	$_POST['id_plano_financeiro'];
 
// ###  Data de Lançamento por enquanto está setada para utilizar a função NOW(), mas abaixa está o código  ###
//para usar ela por post caso necessário
//$dt_lanc 			=	$_POST['dt_lancamento'];
//$dt_lancamento 		= implode("-", array_reverse(explode("/", $dt_lanc)));

 
$dt_venc			=	$_POST['dt_vencimento'];
//$dt_pagamento		=	$_POST[''];
$vl_desconto		=	$_POST['vl_desconto'];
$vl_desconto			=	str_replace('R$ ', '', $vl_desconto);
$vl_desconto			=	str_replace('.', '', $vl_desconto);
$vl_desconto			=	str_replace(',', '.', $vl_desconto);
$vl_juros_multa		=	$_POST['vl_juros'];
$vl_juros_multa			=	str_replace('R$ ', '', $vl_juros_multa);
$vl_juros_multa			=	str_replace('.', '', $vl_juros_multa);
$vl_juros_multa			=	str_replace(',', '.', $vl_juros_multa);
$vl_saldo			=	$_POST['vl_conta'];
$vl_saldo			=	str_replace('R$ ', '', $vl_saldo);
$vl_saldo			=	str_replace('.', '', $vl_saldo);
$vl_saldo			=	str_replace(',', '.', $vl_saldo);

//$ds_nr_cheque		=	$_POST['ds_nr_cheque'];
$ds_item			=	$_POST['ds_conta'];
$ds_historico		=	$_POST['ds_historico'];
//$id_banco			=	
//$dh_alteracao		=		
$st_ativo			=	1;

//Adicionar
if(isset($_POST['adicionar'])) {

	if($vl_desconto != 0){
		$vl_saldo = $vl_saldo - $vl_desconto;
	}

	$nr_parcelas		= 	$_POST['nr_parcelas'];
	$id_status_baixa 	=	$_POST['id_status_baixa'];
	($vl_saldo!=0) ? $vl_parcial_saldo = $vl_saldo/count($dt_venc) : $vl_parcial_saldo=$vl_saldo;
	
	for($i=0; $i<count($dt_venc); $i++){
		$dt_vencimento[$i]	= implode("-", array_reverse(explode("/", $dt_venc[$i])));
		//echo "Id_plano_financeiro: " . $id_planofin . "<br><br>";
		echo "dt_venc: " . $dt_vencimento[$i];
		$sql = "insert into erpc_financeiro_lancamentos (
						id_planofin
						,id_status_baixa
						,id_tipo_titulo
						,dt_vencimento
						,dt_lancamento
						,vl_desconto
						,vl_juros_multa
						,vl_saldo
						,ds_nr_cheque
						,ds_item
						,ds_historico
						,dh_alteracao
						,id_usuario
						,st_ativo)
				Values 	($id_planofin
						,$id_status_baixa
						,$id_tipo_titulo
						,'$dt_vencimento[$i]'
						,now()
						,'$vl_desconto'
						,'$vl_juros_multa'
						,'$vl_parcial_saldo'
						,''
						,'$ds_item'
						,'$ds_historico'
						,now()
						,$id_usuario
						,$st_ativo)";
		
		echo "<br>" .$sql . "<br><br>";
        $stmt = mysqli_prepare($conexao, $sql) or die(mysqli_error($conexao) . '<br />' . $sql);
        if(mysqli_stmt_execute($stmt)){
            echo "inserido com sucesso";
			header("Location:erpc_financeiro_contas_receber_filter.php");
            
        } else {
            die(mysqli_error($conexao));
            echo "Falha na inserção";
        }
	}	  
}	
		
//Editar
if(isset($_POST['editar'])) {
    
	$dt_vencimento = implode("-", array_reverse(explode("/", $dt_venc[0])));
	echo "dt_venc: " . $dt_vencimento . "<br>"; 
	$id_conta		=	$_POST['id_conta'];
	//echo "id_conta: " . $id_conta . "<br>";
	//$id_status_baixa 	=	$_POST['id_status_baixa'];
	
	$sql = "update erpc_financeiro_lancamentos set 
						id_planofin			=	$id_planofin
						,id_tipo_titulo		=	$id_tipo_titulo
						,dt_vencimento		=	'$dt_vencimento'
						,vl_desconto		=	'$vl_desconto'
						,vl_juros_multa		=	'$vl_juros_multa'
						,vl_saldo			=	'$vl_saldo'
						,ds_item			=	'$ds_item'
						,ds_historico		=	'$ds_historico'
						,dh_alteracao		=	now()
						,id_usuario			=	$id_usuario";
						
    $sql .= " where id = $id_conta";
		echo "<br>" . $sql;
    $stmt = mysqli_prepare($conexao, $sql) or die(mysqli_error($conexao) . '<br />' . $sql);
    mysqli_stmt_execute($stmt) or die(mysqli_error($conexao));
    header("Location:erpc_financeiro_contas_receber_filter.php");
}

//Excluir
if(isset($_POST['excluir'])) {
	$id_conta		=	$_POST['id_conta'];
	
    $sql = "update erpc_financeiro_lancamentos set 
						st_ativo	=	0";
    $sql .= " where id = $id_conta";
     
    $stmt = mysqli_prepare($conexao, $sql) or die(mysqli_error($conexao) . '<br />' . $sql);
    mysqli_stmt_execute($stmt) or die(mysqli_error($conexao));
    if(mysqli_stmt_execute($stmt)){
		//echo "setado st_ativo = 0";
		header("Location:erpc_financeiro_contas_receber_filter.php");
	} else {
		die(mysqli_error($conexao));
	}
}

//Baixa de título pelo botão Baixar, antes dos botões editar e remover
if(isset($_POST['baixa'])){
	$id_titulo_baixa = $_POST['id_titulo_baixa'];
	$id_conta_bancaria = $_POST['id_conta'];
	$ds_conta = $_POST['ds_conta'];
	$vl_conta = $_POST['vl_conta'];

	$vl_conta			=	str_replace('R$ ', '', $vl_conta);
	$vl_conta			=	str_replace(',', '.', $vl_conta);
	
	
	$sql1 = "SET foreign_key_checks = 0;";
	$sql2 = "SET foreign_key_checks = 1;";
	
	echo "<br>id_titulo_baixa: " . $id_titulo_baixa;
	echo "<br>Id_conta_bancaria: " . $id_conta_bancaria;
	echo "<br>vl_conta: " . $vl_conta;
	
	if(!empty($id_conta_bancaria)){
		
		$sql_saldo = "select vl_saldo_estimado 
						from erpc_financeiro_contas_bancarias where id = '$id_conta_bancaria'"; 	
		
		$vl_saldo_estimado;		
		$resultado_saldo = mysqli_query($conexao, $sql_saldo) or die ($erro = mysqli_error($conexao));
		
        if (mysqli_num_rows($resultado_saldo)>0) {
			while ($registro = mysqli_fetch_assoc($resultado_saldo)){
				$vl_saldo_estimado = $registro['vl_saldo_estimado'];
			}
		}
		$vl_saldo_atual = ($vl_saldo_estimado + $vl_conta);
		echo "<br>Saldo estimado: " . $vl_saldo_estimado;
		echo "<br>Valor da conta: " . $vl_conta;
		echo "<br>Saldo atual é: "  . $vl_saldo_atual;
		
		$sql = 	"update 	erpc_financeiro_lancamentos,
							erpc_financeiro_contas_bancarias
						set 
							erpc_financeiro_lancamentos.id_status_baixa	= 1,
							erpc_financeiro_contas_bancarias.vl_saldo_estimado = '$vl_saldo_atual'
						where  	erpc_financeiro_lancamentos.id	=	'$id_titulo_baixa'
						  and 	erpc_financeiro_contas_bancarias.id = '$id_conta_bancaria';";
		
		echo "<br><br>" . $sql . "<br><br>";
						
	}else{
		$sql = 	"update 	erpc_financeiro_lancamentos	
						set 
							erpc_financeiro_lancamentos.id_status_baixa	= 1
						where  erpc_financeiro_lancamentos.id	=	'$id_titulo_baixa' ";
	}
	
	$stmt1 = mysqli_prepare($conexao, $sql1) or die(mysqli_error($conexao) . '<br />' . $sql);
	mysqli_stmt_execute($stmt1) or die(mysqli_error($conexao));
	$stmt2 = mysqli_prepare($conexao, $sql) or die(mysqli_error($conexao) . '<br />' . $sql);
	mysqli_stmt_execute($stmt2) or die(mysqli_error($conexao));
	$stmt3 = mysqli_prepare($conexao, $sql2) or die(mysqli_error($conexao) . '<br />' . $sql);
	mysqli_stmt_execute($stmt3) or die(mysqli_error($conexao));
	
	header("Location:erpc_financeiro_contas_receber_filter.php");
	
}

//Baixar um ou vários títulos
if(isset($_POST['baixar'])){
	if(isset($_POST['id_titulos_baixa'])){
		$id_titulos_baixa	=	$_POST['id_titulos_baixa'];	
		$id_conta = $_POST['id_conta'];
		echo $id_conta . "<br><br>";
		if(!empty($id_conta)){
			//$id_conta = $_POST['id_conta'];
			$sql_saldo = "SELECT (select vl_saldo_estimado from 
						  erpc_financeiro_contas_bancarias where id = $id_conta )
							 +
						 (select SUM(t.vl_saldo)  as total
						  from 
						 (
						  select vl_saldo
						  from  erpc_financeiro_lancamentos lancamentos
						  where 1";
			
			$contador = 0;
			foreach($id_titulos_baixa as $id_titulo_baixa) {
				if($contador==0){
					$sql_saldo .= " and id=$id_titulo_baixa";
				}else{
					$sql_saldo .= " or id=$id_titulo_baixa";
				} $contador++;
			}
			$sql_saldo .= " ) t) as saldo";
			
			$saldo_conta;
			$resultado = mysqli_query($conexao, $sql_saldo) or die ($erro = mysqli_error($conexao));
			if (mysqli_num_rows($resultado)>0) {
						while ($registro = mysqli_fetch_assoc($resultado)){
							$saldo_conta = $registro['saldo'];
						}
			}
			
			$sql = 	"update 	erpc_financeiro_lancamentos,
								erpc_financeiro_contas_bancarias	
						set 
							erpc_financeiro_lancamentos.id_status_baixa	= 1
							,erpc_financeiro_contas_bancarias.vl_saldo_estimado = $saldo_conta
						where erpc_financeiro_contas_bancarias.id = $id_conta "; 
		}else {
			$sql = 	"update 	erpc_financeiro_lancamentos	
						set 
							id_status_baixa	= 1 
						where 1 "; 
			
		}
		
		$sql1 = "SET foreign_key_checks = 0;";
		$sql2 = "SET foreign_key_checks = 1;";
		$contador = 0;
		foreach($id_titulos_baixa as $id_titulo_baixa){
			if($contador==0){
				$sql .= " and  (erpc_financeiro_lancamentos.id=$id_titulo_baixa ";
			}else{
				$sql .= " or erpc_financeiro_lancamentos.id=$id_titulo_baixa ";
			}
			$contador++;
			echo $id_titulo_baixa . "<br>";
		}
		$sql .= ");";
		echo "<br><br>" . $sql . "<br><br>";
		
		
		$stmt1 = mysqli_prepare($conexao, $sql1) or die(mysqli_error($conexao) . '<br />' . $sql);
		mysqli_stmt_execute($stmt1) or die(mysqli_error($conexao));
		$stmt2 = mysqli_prepare($conexao, $sql) or die(mysqli_error($conexao) . '<br />' . $sql);
		mysqli_stmt_execute($stmt2) or die(mysqli_error($conexao));
		$stmt3 = mysqli_prepare($conexao, $sql2) or die(mysqli_error($conexao) . '<br />' . $sql);
		mysqli_stmt_execute($stmt3) or die(mysqli_error($conexao));
		
		header("Location:erpc_financeiro_contas_receber_filter.php");
		
	}
    header("Location:erpc_financeiro_contas_receber_filter.php");
}


//Adicionar em Lote
    if(isset($_POST['adicionar_lote'])) {
/*
        $limpar_tabela = "SET FOREIGN_KEY_CHECKS = 0;"; //esvaziando a tabela 
        $stmt = mysqli_prepare($conexao, $limpar_tabela) or die(mysqli_error($conexao) . '<br />' . $limpar_tabela);
        mysqli_stmt_execute($stmt) or die(mysqli_error($conexao));


        $limpar_tabela = "TRUNCATE TABLE erpc_financeiro_plano_contas"; //esvaziando a tabela 
        $stmt = mysqli_prepare($conexao, $limpar_tabela) or die(mysqli_error($conexao) . '<br />' . $limpar_tabela);
        mysqli_stmt_execute($stmt) or die(mysqli_error($conexao));

        $limpar_tabela = "SET FOREIGN_KEY_CHECKS = 1;"; //esvaziando a tabela 
        $stmt = mysqli_prepare($conexao, $limpar_tabela) or die(mysqli_error($conexao) . '<br />' . $limpar_tabela);
        mysqli_stmt_execute($stmt) or die(mysqli_error($conexao));
*/


        //echo "chamei adicionar_lote";

        $mensagem_erro = "<h1>Erro</h1><hr>Não foi possível importar o plano de contas. É provável que haja lançamentos utilizando o seu plano de contas atual, sendo assim <br> o novo plano de contas não poderá ser importado.";

                $limpar_tabela = "DELETE FROM erpc_financeiro_PLANO_CONTAS"; //esvaziando a tabela 
                $stmt = mysqli_prepare($conexao, $limpar_tabela) or die(mysqli_error($conexao) . '<br />' . $limpar_tabela);
                //mysqli_stmt_execute($stmt) or die(mysqli_error($conexao));
                mysqli_stmt_execute($stmt);// or trigger_error(mysqli_error($conexao));

               // echo "Imprimindo código de erro" . mysqli_stmt_errno($stmt);
                /*Verificando se houve erro na execução do statement, fiz isso para tratar a mensagem de erro da fk que ocorre quando o usuário tenta zerar a 
                tabela de plano de contas, já tendo utilizado um plano cadastrado. Nestes casos o importador não deve funcionar para não substituir o plano. */


                //VERIFICANDO SE HOUVE ERRO AO EFETUAR O DELETE - REGISTROS FILHOS FK.
                if(mysqli_stmt_errno($stmt)!=0){
                  echo $mensagem_erro;  
                }else{ 

                    $zerar_tabela = "ALTER TABLE erpc_financeiro_PLANO_CONTAS AUTO_INCREMENT = 1"; //setando o contador para 1
                    $stmt = mysqli_prepare($conexao, $zerar_tabela) or die(mysqli_error($conexao) . '<br />' . $zerar_tabela);
                    mysqli_stmt_execute($stmt) or die(mysqli_error($conexao));


                        foreach ($_POST['toAdd'] as $add_id){
                          $sql = "insert into erpc_financeiro_plano_contas select * from erpc_financeiro_plano_contas_ac";
                          $sql .= " where erpc_financeiro_plano_contas_ac.id = $add_id";
                          

                          //echo $sql . "<br>";


                          $stmt = mysqli_prepare($conexao, $sql) or die(mysqli_error($conexao) . '<br />' . $sql);
                          mysqli_stmt_execute($stmt) or die(mysqli_error($conexao));

                          header("Location:erpc_financeiro_plano_contas_list.php");
                        }
                  
                      
                  
                    }

            }  

?>