public function AtualizaSaldo($valor, $operacao, $conta, $transacao) {
	$Conta = new ModelBanco();
	$atualiza = $Conta->AtualizaSaldoConta($valor, $operacao, $conta, $transacao, $usuario = $_SESSION["id_usuario"]);

	if ($atualiza) {
	    return TRUE;
	} else {
	    return FALSE;
	}
    }
    public function CancelarRecebimentoFatura($id_cr2, $id_usuario, $data) {

	$ContaCC = new ModelBanco();

	$pai = parent::RecuperaCampo("F_LANCA_CR_ID", "F_LANCA_CR2", "F_LANCA_CR2_ID", $id_cr2);

	//Verifica se o lançamento já não faturado ou em. É possível somente cancelar o recebimento de lançamentos quitados
	if (parent::RecuperaCampo("F_STATUS_FINANCEIRO_ID", "F_LANCA_CR", "F_LANCA_CR_ID", $pai) != 3) {
	    return $this->setMotivoErro("Lançamento não encontra-se quitado");
	}

	$valor = parent::RecuperaCampo("VALOR", "F_LANCA_CR2", "F_LANCA_CR2_ID", $id_cr2);

	$sqlCancelaFatura = "UPDATE F_LANCA_CR2 
				    SET DATA_CANCELAMENTO_RECEBIMENTO = '$data',
				    ID_USU_CANCELAMENTO_RECEBIMENTO = $id_usuario,
				    ACAO_CANCELAR_RECEBIMENTO = 'S' 
				    WHERE F_LANCA_CR2_ID = $id_cr2";

	$trans = parent::criaTransacao();

	$CodCC = parent::RecuperaCampo("BANCO_ID", "F_LANCA_CR", "F_LANCA_CR_ID", $pai);

	if (parent::execute_query_trans($trans, $sqlCancelaFatura)) {

	    $sqlcr2 = "UPDATE F_LANCA_CR SET F_STATUS_FINANCEIRO_ID = 2 WHERE F_LANCA_CR_ID = $pai";
	    if (parent::execute_query_trans($trans, $sqlcr2)) {

		//Atualiza o saldo da conta
		$AtualizaSaldo = $ContaCC->AtualizaSaldoConta($valor, "-", $CodCC, $trans, "ER", $id_cr2);

		if ($AtualizaSaldo) {
		    if ($this->AtualizaLancamentosAgrupados($trans, $pai, 2)) {
			parent::gravaTrasacao($trans);
			return TRUE;
		    } else {
			parent::rollbackTransacao($trans);
			return FALSE;
		    }
		}
	    } else {
		return FALSE;
	    }
	} else {
	    return FALSE;
	    parent::rollbackTransacao($trans);
	}
    }
    public function CancelaPagamento($id_cr2, $id_usuario, $data) {

	$ContaCC = new ModelBanco();

	$pai = parent::RecuperaCampo("F_LANCA_CP", "F_LANCA_CP2", "F_LANCA_CP2_ID", $id_cr2);
	//Verifica se o lançamento já não encontra-se baixado, somente dessa forma permite o cancelamento
	//Verifica se o lançamento não foi pago anteriormente
	if (parent::RecuperaCampo("F_STATUS_FINANCEIRO_CP_ID", "F_LANCA_CP", "F_LANCA_CP_ID", $pai) != 2) {
	    return $this->setMotivoErro("Lançamento já encontra-se aberto");
	} $sqlCancelaPagamento = "UPDATE F_LANCA_CP2 
				    SET 
				    DATA_CANCELAMENTO_PAGAMENTO = '$data',
				    USUARIO_CANCELAMENTO_PAGAMENTO = $id_usuario,
				    ACAO_CANCELAR_PAGAMENTO = 'S' 
				    WHERE F_LANCA_CP2_ID = $id_cr2";

	$valor = parent::RecuperaCampo("VALOR", "F_LANCA_CP2", "F_LANCA_CP2_ID", $id_cr2);

	$CodCC = parent::RecuperaCampo("BANCO_ID", "F_LANCA_CP", "F_LANCA_CP_ID", $pai);

	$trans = parent::criaTransacao();

	if (parent::execute_query_trans($trans, $sqlCancelaPagamento)) {

	    $sqlcp2 = "UPDATE F_LANCA_CP SET F_STATUS_FINANCEIRO_CP_ID = 1 WHERE F_LANCA_CP_ID = $pai";
	    if (parent::execute_query_trans($trans, $sqlcp2)) {
		//Atualiza o Saldo da Conta
		$ContaCC->AtualizaSaldoConta($valor, "+", $CodCC, $trans, "EP", $id_cr2);
		parent::gravaTrasacao($trans);
		return TRUE;
	    } else {
		return FALSE;
	    }
	} else {
	    return FALSE;
	}
    }