public function EvolucaoConta($dataInicial, $dataFinal, $codCC, $CodUsu = false, $TipoOp = false, $idOP = false) {

	$dataInicial = $dataInicial . " " . "00:00:01";
	$dataFinal = $dataFinal . " " . "23:59:59";

	$StringTipoOp = !$TipoOp ? "" : "AND IDENTIFICACAO_OPERACAO = '$TipoOp'";
	$StringCodUsu = !$CodUsu ? "" : "AND USU.CHAVE_USER = $CodUsu";
	$StringCodCC = !$codCC ? "" : "AND HIS.BANCO_ID = $codCC";
	$StringCodBanco = !$codCC ? "" : "AND BANCO_ID = $codCC";
	$StringCodOperacao = ((!$idOP) || ($idOP == -1)) ? "" : "AND HIS.F_HISTORICO_SALDO_ID IN ($idOP)";



	$sql1 = "SELECT
			    '' AS TIPO_PERACAO,
			    'SALDO ANTERIOR' AS RESUMO_OPERACAO,
			    '' AS USUARIO,
			    '' AS DATA_SALDO,
			    '' AS VALOR_OPERACAO,
			    CASE WHEN
			    (
			    SELECT VALOR_SALDO
			     FROM F_HISTORICO_SALDO
			     WHERE
			     F_HISTORICO_SALDO.F_HISTORICO_SALDO_ID = (SELECT MAX(F_HISTORICO_SALDO.F_HISTORICO_SALDO_ID) FROM F_HISTORICO_SALDO WHERE DATA_HORA_SALDO < '$dataInicial' $StringCodBanco)
			    ) IS NULL
			    THEN '0.00'
			    ELSE
			    (
			    SELECT VALOR_SALDO
			     FROM F_HISTORICO_SALDO
			     WHERE
			     F_HISTORICO_SALDO.F_HISTORICO_SALDO_ID = (SELECT MAX(F_HISTORICO_SALDO.F_HISTORICO_SALDO_ID) FROM F_HISTORICO_SALDO WHERE DATA_HORA_SALDO < '$dataInicial' $StringCodBanco)
			    )
			    END AS VALOR_SALDO,
			    'CONTA' AS NOME,
			    '' AS COD_OPERACAO
			    FROM F_HISTORICO_SALDO";

	$sql2 = "SELECT
				CASE
				     WHEN HIS.IDENTIFICACAO_OPERACAO = 'CP'
				     THEN 'PAGAMENTO DE CONTAS'
				     WHEN HIS.IDENTIFICACAO_OPERACAO = 'CR'
				     THEN 'RECEBIMENTO DE CONTAS'
				     WHEN HIS.IDENTIFICACAO_OPERACAO = 'EP'
				     THEN 'ESTORNO DE PAGAMENTO'
				     WHEN HIS.IDENTIFICACAO_OPERACAO = 'ER'
				     THEN 'ESTORNO DE RECEBIMENTO'
				     WHEN HIS.IDENTIFICACAO_OPERACAO = 'SAQUE'
				     THEN 'SAQUE'
				     WHEN HIS.IDENTIFICACAO_OPERACAO = 'DEPOSITO'
				     THEN 'DEPOSITO'
			     WHEN HIS.IDENTIFICACAO_OPERACAO = 'TRANSFERENCIA'
				     THEN 'TRANSFERENCIA ENTRE CONTAS'
				    END AS TIPO_PERACAO ,
				    CASE
					WHEN HIS.IDENTIFICACAO_OPERACAO = 'CP'
					THEN CP.RESUMO
					WHEN HIS.IDENTIFICACAO_OPERACAO = 'CR'
					THEN CR.NOME_CONTA
					WHEN (HIS.IDENTIFICACAO_OPERACAO = 'SAQUE') OR  (HIS.IDENTIFICACAO_OPERACAO = 'DEPOSITO')
					THEN DS.OBSERVACAO
					WHEN HIS.IDENTIFICACAO_OPERACAO = 'TRANSFERENCIA'
					THEN TRANS.OBSERVACAO
					WHEN HIS.IDENTIFICACAO_OPERACAO = 'ER' OR  HIS.IDENTIFICACAO_OPERACAO = 'EP'
					THEN 'ESTORNO'
				    END AS RESUMO_OPERACAO,
				    USU.UCUSERNAME AS USUARIO,
				    HIS.DATA_HORA_SALDO AS DATA_SALDO,
				    HIS.VALOR_OPERACAO AS VALOR_OPERACAO,
				    HIS.VALOR_SALDO AS VALOR_SALDO,
				    BANCO.NOME,
				    HIS.F_HISTORICO_SALDO_ID AS COD_OPERACAO
			    FROM
			       F_HISTORICO_SALDO HIS
			       LEFT JOIN F_LANCA_CR2 CR2   ON (CR2.F_LANCA_CR2_ID = HIS.F_LANCA_CR2_ID)
			       LEFT JOIN F_LANCA_CR CR ON (CR.F_LANCA_CR_ID = CR2.F_LANCA_CR_ID)
			       LEFT JOIN F_LANCA_CP2  CP2     ON (CP2.F_LANCA_CP2_ID = HIS.F_LANCA_CP2_ID)
			       LEFT JOIN F_LANCA_CP CP ON (CP.F_LANCA_CP_ID = CP2.F_LANCA_CP)
			       LEFT JOIN F_DEPOSITO_SAQUE  DS ON (DS.F_DEPOSITO_SAQUE_ID = HIS.F_DEPOSITO_SAQUE_ID)
			       LEFT JOIN F_TRANSFERENCIA  TRANS ON (TRANS.F_TRANSFERENCIA_ID = HIS.F_TRANSFERENCIA_ID)
			       INNER JOIN UCTABUSERS USU ON (USU.CHAVE_USER = HIS.CHAVE_USER)
			       INNER JOIN BANCO ON (BANCO.BANCO_ID = HIS.BANCO_ID)
			       WHERE HIS.DATA_HORA_SALDO BETWEEN  '$dataInicial'  AND '$dataFinal'
			       $StringCodCC
			       $StringTipoOp
			       $StringCodUsu
			       $StringCodOperacao
			       ORDER BY 4";

	$sql = $sql1 . " UNION " . $sql2;

	if (($idOP) || ($idOP == -1))
	    $sql = $sql2;


	$ListaEvolucaoConta = array();

	if ($result = parent::execute_query($sql, true)) {

	    while ($linha = parent::criaObjetoConsulta($result)){
		$dadosBanco = new ModelBanco();
		$dadosBanco->setTIPO_OPERACAO($linha->TIPO_PERACAO);
		$dadosBanco->setRESUMO_OPERACAO($linha->RESUMO_OPERACAO);
		$dadosBanco->setSALDO($linha->VALOR_SALDO);
		$dadosBanco->setVALOR_OPERACAO($linha->VALOR_OPERACAO);
		$dadosBanco->setUSUARIO_OPERACAO($linha->USUARIO);
		$dadosBanco->setDATA_OPERACAO($linha->DATA_SALDO);
		$dadosBanco->setNOMEBANCO($linha->NOME);
		$dadosBanco->setCOD_OPERACAO($linha->COD_OPERACAO);

		array_push($ListaEvolucaoConta, $dadosBanco);
	    }
	}
	return $ListaEvolucaoConta;
    }