class FaturamentoRN extends AbstractFatDebugLogEnableRN {

	public String selecionarSsmConformeSituacaoContaSsm(
			final DominioSituacaoSSM situacaoSSM,
			final DominioSituacaoConta situacaoConta, final Integer cthSeq,
			final String ssmSolA, final String ssmRealA, final String ssmSolB,
			final String ssmRealB) {

		String result = null;
		String ssmSolANulo = null;
		String ssmRealANulo = null;
		String ssmSolBNulo = null;
		String ssmRealBNulo = null;

		try {
			if (situacaoConta != null) {
				switch (situacaoConta) {
				case E:
				case O:
				case R:
					ssmSolANulo = "not found - proced solic CTH" + cthSeq;
					ssmRealANulo = "not found - proced realiz CTH" + cthSeq;
					result = this.selecionarSsmEntreSolicitadoRealizado(
							situacaoSSM, ssmSolA, ssmRealA, ssmSolANulo,
							ssmRealANulo);
					break;
				case A:
				case F:
					ssmSolBNulo = "not found2 - proced solic EAI" + cthSeq;
					ssmRealBNulo = "not found2 -proced realiz EAI" + cthSeq;
					result = this.selecionarSsmEntreSolicitadoRealizado(
							situacaoSSM, ssmSolB, ssmRealB, ssmSolBNulo,
							ssmRealBNulo);
					break;
				default:
					this.logDebug(
							"situacao diferente de F, E, R, A ou O." + cthSeq);
					result = null;
					break;
				}
			} else {
				this.logDebug("not found - conta: " + cthSeq);
			}
		} catch (final Exception e) {
			this.logDebug("A seguinte exceção deve ser ignorada, seguindo a lógica migrada do PL/SQL: " + e.getMessage());
		}
		return result;
	}

}