class VerificarPrescricaoON extends BaseBusiness {

	public void editarPrescricao(final MpmPrescricaoMedica prescricao,
			final boolean cienteEmUso) throws BaseException {
		RapServidores servidorLogado = getServidorLogadoFacade().obterServidorLogado();
		
		AghAtendimentos atendimento = prescricao.getAtendimento();

		getAghuFacade().refreshAndLock(atendimento);
		
		getMpmPrescricaoMedicaDAO().refreshAndLock(prescricao);		

		// utiliza a mesma data durante toda a transação
		Date dataAtual = getDataAtual();
		
		if (!DominioSituacaoPrescricao.U.equals(prescricao.getSituacao())){
			validarOutraPrescricaoEmUso(atendimento, prescricao, dataAtual);			
		}

		if (!cienteEmUso) {
			validarPrescricaoEmUso(prescricao);
		}

		// Se está 'L'ivre e vai para em 'U'so, atualiza o movimento
		if (DominioSituacaoPrescricao.L.equals(prescricao.getSituacao())) {
			prescricao.setDthrMovimento(dataAtual);
		}
		prescricao.setSituacao(DominioSituacaoPrescricao.U);
		
		prescricao.setServidorAtualizada(servidorLogado);

		//getAghuFacade().flush();
		
		gerarLogPrescricaoEmUso(prescricao, "Edição");
	}

}